2017-04-24 42 views
0

我使用卡農與akka 2.4(遠程包括)。Kamon AspecJWeaver依賴不能與allinone jar

這意味着我需要包含一個-javaagent選項才能按指定的方式啓動 by the Kamon doc

的問題是,我的Maven是建立一個ALLINONE罐子:

<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)內運行的東西,它的工作原理是將兩種罰款:

-javaagent:全\路徑\到\ 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外部運行時不會報告度量標準。

我覺得很難調試的問題,因爲即使有

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

卡蒙不告訴我,編織丟失。

我相信這是由於Java沒有在路徑中找到Weaver類,但我在我的機智的結尾。

任何幫助?我們的目標是擁有織造

回答

1

發現在一箇舊的用戶羣后here答案外部運行jar:

您需要添加

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

要將變壓器。

+0

好的,謝謝加入!去消除我的嘗試,以避免混淆:) –