Java 如何将Maven依赖项的JAR位置指定为插件参数?
我尝试按照中的配置使用本地repo中的jar位置作为插件参数,但似乎不起作用。我不知道这是否是因为Maven版本比响应版本更新(我使用的是Maven 3.2.5) 在pom.xml中,我需要向surefire插件定义中添加一个javaagent。javaagent jar文件是我的项目中的一个依赖项 我尝试了以下方法:Java 如何将Maven依赖项的JAR位置指定为插件参数?,java,maven,maven-surefire-plugin,Java,Maven,Maven Surefire Plugin,我尝试按照中的配置使用本地repo中的jar位置作为插件参数,但似乎不起作用。我不知道这是否是因为Maven版本比响应版本更新(我使用的是Maven 3.2.5) 在pom.xml中,我需要向surefire插件定义中添加一个javaagent。javaagent jar文件是我的项目中的一个依赖项 我尝试了以下方法: <dependencies> <dependency> <groupId>org.jmockit<
<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>
很明显,这个参数并没有得到扩展。我希望/期待看到类似于-javaagent:c:\users\eric\.m2\repository\org.jmockit\1.20\jmockit-1.20.jar
或类似的东西
有没有一种干净的方法可以从插件配置中的依赖项引用jar?我知道我可以使用依赖插件将jar复制到目标文件夹中的已知位置,然后指向该位置,但我希望有一个更简单的解决方案,不需要中间步骤。包含一个目标构建类路径
,可以解决此问题
在命令行中,您可以执行以下操作:
mvn dependency:build-classpath -DincludeArtifactIds=testng -DincludeGroupIds=testng
其结果是:
C:\repository\org\testng\testng\6.8.21\testng-6.8.21.jar
生成的类路径也可以放入属性outputProperty
。。。。
这也可以配置到pom中…要进行变量扩展,需要添加maven依赖插件:
<!-- 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>
maven依赖插件
GetClassPathFileName
性质
org.apache.maven.plugins
maven surefire插件
-javaagent:${org.jmockit:jmockit:jar}
您需要如下设置“argLine”标记值:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<argLine>
-javaagent:"${localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar"
</argLine>
</configuration>
</plugin>
org.apache.maven.plugins
maven surefire插件
${surefire.version}
-javaagent:“${localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar”
您需要设置jmockit jar所在的.m2 repo路径。这对我有用
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<argLine>
-javaagent:"${localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar"
</argLine>
</configuration>
</plugin>