我有一个项目使用一些旧脚本来处理源代码。我无法摆脱它,所以我想从maven调用它。获取作为maven中依赖项的jar的位置
问题是我需要传递一个jar文件的位置参数。我已经将这个jar文件列为我的pom.xml中的一个依赖项。有没有一种方法可以将jar文件的绝对位置传递给此脚本?
我有一个项目使用一些旧脚本来处理源代码。我无法摆脱它,所以我想从maven调用它。获取作为maven中依赖项的jar的位置
问题是我需要传递一个jar文件的位置参数。我已经将这个jar文件列为我的pom.xml中的一个依赖项。有没有一种方法可以将jar文件的绝对位置传递给此脚本?
这绝不是理想的,但你可以从行家打电话给你的脚本,并通过这个作为一个参数:
${settings.localRepository}/<path to artifact>
其中path to神器是由组ID的路径和你想要的神器身份证。例如,如果你想2.2的maven-JAR插件版本的参考,你会使用这样的:
${settings.localRepository}/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2.jar
我喜欢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>
显然这只适用于使用antrun插件时,这不是我的情况 – santiagozky 2012-03-28 12:09:52
谢谢。我想除此之外我没有太多的选择 – santiagozky 2012-03-08 09:31:52
是的,你所做的事实非常规,所以这并不理想。更好的计划是将这些遗留的脚本变为原始状态,以便不再需要它们;) – Michael 2012-03-08 13:09:30