我有一个带有许多子模块的 Maven 项目。其中一些子模块打包为 jar 并部署到 Nexus Maven 存储库。
我遇到的问题是打包的 jar 引用了不一定部署的父 pom。
有没有办法让Maven部署有效的pom而不是pom.xml
?
您需要完全了解您想做的事情的后果:有效POM https://stackoverflow.com/a/16923954/1743880还将包含您当前的设置(内容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>
这告诉maven-jar-plugin https://maven.apache.org/plugins/maven-jar-plugin/不添加Maven 描述符 http://maven.apache.org/shared/maven-archiver/index.html pom.xml
and pom.properties
到罐子里。相反,pom.xml
是由生成的maven-help-plugin https://maven.apache.org/plugins/maven-help-plugin/和它的effective-pom https://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html goal.
如果你想要pom.properties
文件,您还需要使用以下命令手动创建它maven-antrun-plugin https://maven.apache.org/plugins/maven-antrun-plugin/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)