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>
给你的变形金刚。
我将 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>
给你的变形金刚。