繁体   English   中英

如何将罐子与Maven组件插件放在同一文件夹中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM