我正在尝试构建一个包含第三方项目(及其所有依赖项)以及另外几个项目的Maven父项目脚本。将子项目中的所有依赖项jar复制到父项目目录中
我想复制所有的依赖关系(我的意思是ALL依赖性,包括通过其又被我孩子的一个项目所需的其他相关性要求罐)到父项目目录,例如“LIB”,这样我可以运行使用通配符的classpath的Java:
java -cp "lib/*" package.blah.blah.Main
我使用maven-dependency-plugin
如copy-dependencies
用各种方法尝试了,但我可以指向Maven来是我自己的孩子的项目,而不是他们依赖关系(我的意思是在父项目pom中)。
这是父项目的pom我已经写:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<properties>
<server.version>7.0.2</server.version>
<ext.version>1.0-alpha3-SNAPSHOT</ext.version>
</properties>
<modelVersion>4.0.0</modelVersion>
<groupId>org.kontalk</groupId>
<artifactId>tigase-kontalk</artifactId>
<version>devel</version>
<packaging>pom</packaging>
<modules>
<module>../tigase-server/modules/master</module>
<module>../tigase-extension</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-artifact</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.kontalk</groupId>
<artifactId>tigase-server</artifactId>
<version>${server.version}</version>
<type>jar</type>
</artifactItem>
<artifactItem>
<groupId>org.kontalk</groupId>
<artifactId>tigase-extension</artifactId>
<version>${ext.version}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
<outputDirectory>bin</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.kontalk</groupId>
<artifactId>tigase-server</artifactId>
<version>${server.version}</version>
</dependency>
<dependency>
<groupId>org.kontalk</groupId>
<artifactId>tigase-extension</artifactId>
<version>${ext.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
它将在bin目录复制只是两个直接子项目广口瓶,但没有别的。 我正在考虑做一个手动副本(如在Maven副本中)以残忍地复制我的子项目目录中的所有jar,但它看起来......残忍。
如果不能与现有的Maven的软件来完成,我甚至可以安于直接使用maven EXEC
编辑(其中,我希望,会自动设置CLASSPATH吧?):我d喜欢尽可能少地修改儿童项目poms,尤其是第三方项目。
“java -cp lib/*。jar” 恐怕不行。此表达式将解析为“java -cp lib/lib1.jar lib/lib2.jar ...”而不是“java -cp lib/lib1.jar:lib/lib2.jar:...” – erosb
对不起,已经修复它不是壳逃脱。 –