Kamon AspecJWeaver 依赖项不适用于 allinone jar

Kamon AspecJWeaver dependency not working with allinone jar

我将 Kamon 与 akka 2.4(包括远程)一起使用。

这意味着我需要包含一个 -javaagent 选项才能按指定启动 by the Kamon doc.

问题是我的 Maven 正在构建一个 allinone jar:

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <shadedArtifactAttached>true</shadedArtifactAttached>
                        <shadedClassifierName>allinone</shadedClassifierName>
                        <artifactSet>
                            <includes>
                                <include>*:*</include>
                            </includes>
                        </artifactSet>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>reference.conf</resource>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <main-Class>my.main.Program</main-Class>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

如果我 运行 来自 IDE (Intellij) 的东西,它可以通过添加以下任一方式正常工作:

-java代理人:full\path\to\aspectjweaver-1.8.10.jar

或将这 2 个添加到 pom:

    <dependency>
        <groupId>io.kamon</groupId>
        <artifactId>kamon-autoweave_2.11</artifactId>
        <version>0.6.5</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.10</version>
    </dependency>

问题是,一旦我实际构建了 jar (mvn clean package),并且我 运行 使用(或不使用)-javaagent 选项(java - javaagent... -jar app.jar) ,编织不会发生,并且在 IDE.

之外 运行ning 时不会报告任何指标

我发现很难调试这个问题,因为即使

kamon.metric.disable-aspectj-weaver-missing-error = false

家花没有告诉我编织不见了

我认为这是由于 Java 没有在路径中找到编织者 类,但我已经无计可施了。

有什么帮助吗?目标是 运行 罐子外部编织

在老用户组找到答案post here:

您需要添加

<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
    <resource>META-INF/aop.xml</resource>
</transformer>

给你的变形金刚。