获取maven中依赖的jar的位置

时间:2012-03-05 13:47:18

标签: maven

我有一个项目使用一些旧脚本来处理源代码。我无法摆脱它,所以我想从maven中调用它。

问题是我需要传递一个jar文件的位置作为参数。我已将此jar文件列为我的pom.xml中的依赖项。有没有办法可以将jar文件的绝对位置传递给这个脚本?

2 个答案:

答案 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>