我們有一個使用maven-antrun-plugin
來運行下載的JAR的配置文件。如何在maven-antrun-plugin中使用插件依賴範圍中的依賴項?
附件A:(這部作品)
大家可以參考使用屬性${maven.dependency.com.foobar.target-jar.jar.path}
(Can I use the path to a Maven dependency as a property?)下載JAR。但是在這個解決方案中,自定義依賴項和存儲庫信息不僅限於配置文件的範圍。
<project>
...
<repositories>
<repository>
<id>thirdparty</id>
<name>Third Party</name>
<url>
[URL for the repository that holds the target JAR]
</url>
<layout>default</layout>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.foobar</groupId>
<artifactId>target-jar</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
...
<profiles>
<profile>
<id>runJARprofile</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<inherited>false</inherited>
<executions>
<execution>
<id>run-jar</id>
<phase>package</phase>
<configuration>
<target name="runJar" fork="true">
<java jar="${maven.dependency.com.foobar.target-jar.jar.path}" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...
</project>
附件B:(還沒有得到它的工作)
在這裏,我們提出的依賴性和資源庫信息到配置文件。 Maven成功下載了工件,但我們不再知道如何通過屬性來引用它。
<project>
...
<profiles>
<profile>
<pluginRepositories>
<repository>
<id>thirdparty</id>
<name>Third Party</name>
<url>
[URL for the repository that holds the target JAR]
</url>
<layout>default</layout>
</repository>
</pluginRepositories>
...
<id>runJARprofile</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<inherited>false</inherited>
<dependencies>
<dependency>
<groupId>com.foobar</groupId>
<artifactId>target-jar</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>run-jar</id>
<phase>package</phase>
<configuration>
<target name="runJar" fork="true">
<java jar="${?????}" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...
</project>
我不知道我理解的問題/問題。首先定義的屬性「maven.dependency.com.foobar.target-jar.jar.path」在哪裏? – Tunaki
@Tunaki看起來像第一個例子,它是通過'$ {maven.dependency.com.foobar.target-jar.jar.path}'從'pom'的''dependencies>'中取出的,當第二個例子想要使用添加到''的''。我認爲這個問題是「你怎麼能在插件的依賴範圍中使用_maven-antrun-plugin_中的依賴項?」。 –
mkobit
基於[此鏈接](http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html),屬性格式爲'$ {maven.dependency.com.foobar.target-jar .jar.path}'已被棄用,所以我們應該使用'$ {com.foobar:target-jar:jar}'來代替。在圖表A中試過,但它仍然有效,但在圖表B中仍然不起作用。 – thn929