我尝试按照此响应中的配置来使用本地repo中的jar位置作为插件参数,但似乎不起作用。我不知道这是否是因为Maven版本比响应版本更新(我使用的是Maven 3.2.5)。
在我的pom.xml,我需要在我的surefire插件定义中添加一个javaagent。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 \存储库\组织。jmockit\1.20\jmockit-1.20。jar或类似的东西。
有没有一种干净的方法可以在插件配置中从我的依赖项引用jar?我知道我可以使用依赖插件将jar复制到目标文件夹中的已知位置,然后指向该位置,但我希望有一个更简单的解决方案,不需要中间步骤。
maven依赖插件包含一个目标构建类路径,可以解决这个问题。
在命令行中,您可以执行以下操作:
mvn dependency:build-classpath -DincludeArtifactIds=testng -DincludeGroupIds=testng
其结果是:
C:\repository\org\testng\testng\6.8.21\testng-6.8.21.jar
生成的类路径也可以放入属性outputProperty
......这也可以配置为pom...
您需要按如下方式设置“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>
您需要设置。存在jmockit jar的m2 repo路径。这对我有用。
要进行变量扩展,需要添加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>
我正在开发一个Java项目,使用maven作为依赖项管理器/构建工具。我当前在将依赖项的依赖项解析到正确版本时遇到问题。 有问题的依赖项称为JasperReports-Functions-6.1.0.jar,它不是托管在maven repo中,而是以jar形式提供的。 如何强制jar依赖项使用子依赖项的某个版本?
最近,我发现了以下问题: 当我为我的项目设置依赖项管理时,我有一个child-pom,它使用具有依赖项的插件,我想要与在我的依赖项管理中声明的依赖项同步。 在根pom中,我在依赖项管理中声明: 在子pom中,我有一个插件需要gwt-user: 但是,如果我移除gwt-maven-plugin中使用的依赖版本,编译就会失败。 是不是还有别的办法可以实现呢? PS:在maven和maven插件中有一个
我正在使用maven shade插件创建一个胖罐子,其中也包括一些弹性城堡罐子。但这造成了问题,因为Bouncy Castle的未签名版本。
我有一个Maven BOM文件,我将其导入到我的项目pom中: 适用于依赖项,甚至插件。但现在我还想控制pom项目中使用的插件的依赖性版本: 我想在BOM文件中指定Commons-dbcp的版本,而不必将其指定为BOM文件中jetty插件的依赖项。
我有一个gradle构建,它依赖于一个在buildSrc目录中编译的插件(MyTools)。这部分工作正常。我遇到的问题是试图从外部jar导入一个类以在myTools插件的源代码中使用。 我的目录结构如下: buildsrc ----build.gradle -----build.gradle -----settings.gradle -------libs -------Yuicompresso
我有两个依赖项,工件-a和工件-b。每个依赖于不同版本的工件-c。我如何对工件进行阴影以使用这些不同的依赖项?(或者让工件-a使用阴影依赖项,工件-b使用普通依赖项。