在Tomcat上的Java EE Maven项目中设置JavaAgent

时间:2013-07-20 14:33:19

标签: java maven java-ee maven-surefire-plugin javaagents

在我在Tomcat上运行的Java EE Maven web应用程序中,我想使用http://sizeof.sourceforge.net或需要-javaagent:调用的类似库。

使用SO研究,我在pom.xml中添加了以下内容:

  1. 实际使用SizeOf库:

    <dependency>
        <groupId>net.sourceforge.sizeof</groupId>
        <artifactId>SizeOf</artifactId>
        <version>0.2.1</version>
        <type>jar</type>
    </dependency>
    
  2. 进行-javaagent调用

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.4</version>
        <configuration>
             <forkMode>once</forkMode>
             <argLine>
                 -javaagent:"${settings.localRepository}/net/sourceforge/sizeof/SizeOf/0.2.1/SizeOf-0.2.1.jar"
             </argLine>
             <useSystemClassloader>true</useSystemClassloader>
        </configuration>
    </plugin> 
    
  3. 一切都很好。当我使用SizeOf调用方法时,我收到错误未设置Instrumentation,表示设置-javaagent失败。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我是Maven和Surefire的大手笔。上面的配置按预期工作:它在构建期间为测试设置javaagent。然而,这不是我想要的。

通过我的Netbeans IDE,我设法将-javaagent正确地设置为我的TomEE / Tomcat服务器上的VM选项:

In Netbeans (OS X, 7.3): 
Tools > Servers > (your server) > Platform.
Fill in next to VM Options: -javaagent:/path/to/javaagent.jar

enter image description here

P.S。:Maven解决方案会无限好。如果您有,请分享。