java - Maven:仅复制构建 jar,而不构建 poms

标签 java maven

我有以下 Maven 结构:

ParentProject
|-project-1
| |-src
| |-pom.xml
|-project-N
| |-src
| |-pom.xml
|-pom.xml 

在父项目 pom 中,我使用以下插件进行复制:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.6</version>
    <executions>
    <execution>
        <id>copy</id>
        <phase>package</phase>
        <goals>
          <goal>copy</goal>
        </goals>
        <configuration>
            <artifactItems>
                <artifactItem>
                  <groupId>${project.groupId}</groupId>
                  <artifactId>${project.artifactId}</artifactId>
                  <version>${project.version}</version>
                  <type>${project.packaging}</type>
                  <outputDirectory>/somepath/jars</outputDirectory>
                </artifactItem>
            </artifactItems>
        </configuration>
        </execution>
    </executions>
</plugin>

我在父项目 pom 中使用此插件,但不在 project-1/N 中使用,因为我不想重复使用此插件和输出目录(在某些情况下可以有一个目录,在相同情况下可以有多个目录)。该插件运行良好。但是,它还会复制构建父项目 pom。如何在没有父项目 pom 的情况下仅复制项目 1/N jar?

最佳答案

实现此目的的一种方法是在父级内部将 skip 添加到 true :

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                    <skip>true</skip>
                        <artifactItems>
                            <artifactItem>
                                <groupId>${project.groupId}</groupId>
                                <artifactId>${project.artifactId}</artifactId>
                                <version>${project.version}</version>
                                <type>${project.packaging}</type>
                                <outputDirectory>${project.build.directory}/lib/</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

然后在你的 child 中将其切换为 false:

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <skip>false</skip>
                    </configuration>
                </execution>
            </executions>
         </plugin>

关于java - Maven:仅复制构建 jar,而不构建 poms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43087975/

相关文章:

Java最佳实践或是否有任何设计模式来保存与该类没有直接关系的数据

java - Apache Thrift java 最低要求

java - 如何在eclipse luna中配置lombok

java - IntelliJ IDEA : ClassNotFoundException if run Debug, 执行/运行确实有效

java - 如何强制 JBoss 部署使用特定版本的依赖项而不是已安装的模块?

maven - 在 Maven 构建中包含 yajsw

java - 如何解决NeticaJ Junit中的NullPointerException?

JavaFX TextArea 从坐标获取插入符位置

Java从多维数组中删除行

java - Spring Boot Maven webapp 文件夹和 ResourceHandler