我有一个项目使用一些旧脚本来处理源代码。我无法摆脱它,所以我想从maven中调用它。
问题是我需要传递一个jar文件的位置作为参数。我已将此jar文件列为我的pom.xml中的依赖项。有没有办法可以将jar文件的绝对位置传递给这个脚本?
答案 0 :(得分:1)
这绝对不是理想的,但您可以从maven调用脚本,并将其作为参数传递:
${settings.localRepository}/<path to artifact>
其中工件路径是由您想要的组ID和工件ID组成的路径。例如,如果你想引用maven-jar-plugin 2.2版,你可以使用它:
${settings.localRepository}/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2.jar
答案 1 :(得分:0)
我更喜欢Pascal Thivent's answer类似的问题。您可以使用${maven.dependency.junit.junit.jar.path}
表示法引用依赖项。 Pascal在他的回答中包含了一个样本pom:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow</groupId>
<artifactId>q2359872</artifactId>
<version>1.0-SNAPSHOT</version>
<name>q2359872</name>
<properties>
<my.lib>${maven.dependency.junit.junit.jar.path}</my.lib>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<tasks>
<echo>${my.lib}</echo>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>