java - 如何将 Maven 依赖项的 JAR 位置指定为插件参数?

标签 java maven maven-surefire-plugin

我尝试按照 this response on SO 中的配置进行操作将我本地存储库中的 jar 位置用作插件参数,但它似乎不起作用。我不知道这是不是因为 Maven 版本比响应更新(我使用的是 Maven 3.2.5)。

在我的 pom.xml 中,我需要将 javaagent 添加到我的 surefire 插件定义中。 javaagent jar 文件是我项目中的依赖项。

我尝试了以下方法:

<dependencies>
        <dependency>
            <groupId>org.jmockit</groupId>
            <artifactId>jmockit</artifactId>
            <version>${jmockit.version}</version>
            <scope>test</scope>
        </dependency>
</dependencies>

...
        <!-- Configuration to use jmockit on IBM J9 -->
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <argLine>-javaagent:${org.jmockit:jmockit:jar}</argLine>
            </configuration>
        </plugin>

我原以为 ${org.jmockit:jmockit:jar} 会扩展到 jar 的位置,但在我的 mvn 控制台中我看到以下错误:

[ERROR] Command wascmd.exe /X /C "C:\IBM\SDP\jdk\jre\bin\java -javaagent:${org.jmockit:jmockit:jar} -jar C:\dev\Eclipse\rtc-connector\target\surefire\surefirebooter1389906134960134.jar C:\dev\Eclipse\rtc-connector\target\surefire\surefire5488684370604495471tmp C:\dev\Eclipse\rtc-connector\target\surefire\surefire_05402037720997438783tmp"

很明显参数没有得到扩展。我希望/期待看到类似 -javaagent:c:\users\eric\.m2\repository\org.jmockit\1.20\jmockit-1.20.jar 或类似的东西。

有没有一种干净的方法可以在我的插件配置中从我的依赖项中引用 jar?我知道我可以使用 dependency-plugin 将 jar 复制到目标文件夹中的已知位置,然后指向该位置,但我希望有一个不需要中间步骤的更简单的解决方案。

最佳答案

要进行变量扩展需要添加ma​​ven-dependency-plugin:

        <!-- obtain ${*:*:jar} properties -->
        <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>getClasspathFilenames</id>
                    <goals>
                        <goal>properties</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <argLine>-javaagent:${org.jmockit:jmockit:jar}</argLine>
            </configuration>
        </plugin>

关于java - 如何将 Maven 依赖项的 JAR 位置指定为插件参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33397916/

相关文章:

maven - Jenkins 管道构建错误 -> 未找到测试报告文件

java - Maven 构建失败并显示 "mvn install"命令

java - Jackson:从 JSON 数组中获取没有 id 的单个值

java - 在您的机器上安装多个 GAE SDK 实例会导致冲突吗?

java - 复制maven项目的正确方法(备份)

java - 如何让 Maven 创建一个适当命名的 .war 以与 Tomcat 7 的并行部署功能一起使用?

java - maven surefire : when are we forced to set reuseForks=false?

Java Swing - 为什么我无法将图像添加到 Jpanel?

java - Hibernate 允许 getdate() 吗?

java - 我在哪里可以下载 net.oauth httpclient4 jar 文件