Maven包有效pom

Leo*_*eon 4 java pom.xml maven parent-pom

我有一个包含许多子模块的Maven项目.其中一些子模块打包为jar,部署到Nexus Maven存储库.

我遇到的问题是打包的jar引用了不必部署的父pom.

有没有办法让Maven部署有效的pom而不是pom.xml

Tun*_*aki 6

您需要完全了解您想要做的事情的后果:有效的POM还将包含您当前的设置(内容settings.xml),从而可能公开暴露您在那里硬编码的任何密码.更好的解决方案就是部署父POM.

但是,如果您真的想沿着这条路走下去,可以进行以下配置:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
        </archive>
    </configuration>
</plugin>
<plugin>
    <artifactId>maven-help-plugin</artifactId>
    <version>2.1.1</version>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>effective-pom</goal>
            </goals>
            <configuration>
                <output>${project.build.outputDirectory}/META-INF/maven/${project.groupId}/${project.artifactId}/pom.xml</output>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这告诉maven-jar-plugin不添加Maven的描述 pom.xmlpom.properties对罐子.相反,它pom.xml是由maven-help-plugin它的effective-pom目标产生的.

如果您还想要该pom.properties文件,则需要手动创建该文件maven-antrun-plugin.