首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用allinone的Kamon AspecJWeaver依赖关系

不使用allinone的Kamon AspecJWeaver依赖关系
EN

Stack Overflow用户
提问于 2017-04-24 11:04:09
回答 1查看 327关注 0票数 0

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

这意味着我需要包括一个-javaagent选项,以作为指定的卡蒙博士启动。

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

代码语言:javascript
复制
    <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:full\path\to\aspectjweaver-1.8.10.jar

或者这两个到pom:

代码语言:javascript
复制
    <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干净包),并使用(或不使用) -javaagent选项(java -javaagent.( -jar app.jar),在IDE外部运行时,不会发生织入,也不会报告任何度量。

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

代码语言:javascript
复制
kamon.metric.disable-aspectj-weaver-missing-error = false

卡蒙没有告诉我编织不见了。

我相信这是因为Java没有在路径中找到Weaver类,但是我的智慧已经到了尽头。

有什么帮助吗?我们的目标是通过编织在外部运行这个罐子。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-26 14:54:21

在旧用户组post 这里中找到答案

你需要添加

代码语言:javascript
复制
<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
    <resource>META-INF/aop.xml</resource>
</transformer>

给你的变压器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43586400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档