3

在我在 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> 
    

一切都很好。当我使用调用方法时SizeOf,出现错误 Instrumentation is not set,表示设置-javaagent失败。

我感谢您的帮助。

4

1 回答 1

2

我是一个关于 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

在此处输入图像描述

PS:Maven 解决方案会更好。如果你有的话,请分享一下。

于 2013-07-21T23:56:40.500 回答