[英]How to put jars in the same folder with the Maven Assembly Plugin
我有一个带有n ***(多个)模块项目的多模块Apache Maven 3.3.3项目:
/mvnModular
/modules
/modules /mainApp /pom.xml
/modules /module1 /pom.xml
/modules /module2 /pom.xml
/modules /moduleChat /pom.xml
/modules /moduleBlog /pom.xml
...
模块只有一个文件pom.xml:
<groupId>mainmod.modules</groupId>
<artifactId>modules</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>..\mainApp\pom.xml</module>
<module>..\module1\pom.xml</module>
<module>..\module2\pom.xml</module>
<module>..\moduleChat\pom.xml</module>
<module>..\moduleBlog\pom.xml</module>
</modules>
...
如何将各个模块项目中的所有.jar文件添加到项目根文件夹mvnModular中的文件夹lib中?
这是我最后想要的:
/mvnModular
mainApp.jar
/lib
/lib /module1.jar
/lib /module2.jar
/lib /moduleChat.jar
/lib /moduleBlog.jar
.....
各个模块都有一个pom.xml文件,如下所示:
<parent>
<groupId>mainmod.modules</groupId>
<artifactId>modules</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../modules/pom.xml</relativePath>
</parent>
<groupId>mainmod.modules.module2</groupId>
<artifactId>module2</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>module1</name>
更新
想法是编写一个应用程序,使用户可以首先下载包含mainApp.jar的项目mainApp
,该项目在主项目mvnModular根文件夹中。 然后,可以通过将模块添加到mvnModular根目录中名为packages的文件夹中来扩展应用程序(mainApp.jar)。
您可以使用maven-antrun-plugin 。 这将必须添加到每个模块中。
检查下面的示例。
父POM
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>TestMavenModules</groupId>
<artifactId>TestMavenModules</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>Module1</module>
<module>Module2</module>
</modules>
</project>
Module1 POM
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>TestMavenModules</groupId>
<artifactId>TestMavenModules</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>Module</artifactId>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<copy
file="${project.build.directory}/${project.artifactId}-${project.version}.jar"
todir="../PackagedJars" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Module2 POM
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>TestMavenModules</groupId>
<artifactId>TestMavenModules</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>Module2</artifactId>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<copy
file="${project.build.directory}/${project.artifactId}-${project.version}.jar"
todir="../PackagedJars" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
最后,您将在根目录的PackagedJars目录中拥有jar。
/PackagedJars
----/Module1-0.0.1-SNAPSHOT.jar
----/Module2-0.0.1-SNAPSHOT.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.