当我使用 Maven 2(版本 2.0.9
或 2.2.1
)构建 JAR 库时,库的 pom.xml
被复制到 JAR 的 META-INF/maven/[groupId]/[artifactId]/
目录中。
但是,就我而言,pom.xml
有一个父级,我更愿意获得 effective-pom 而不是原始 pom.xml
文件(或最终同时拥有它们)。
有没有办法做到这一点?
最佳答案
您可以在安装周期生成 Effective-pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<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}/effective-pom.xml</output>
</configuration>
</execution>
</executions>
</plugin>
但是要将这个 Effective-pom.xml 复制到 JAR 文件的 `META-INF/maven/[groupId]/[artifactId]/` 目录下,您必须编写一个自定义 Jar mojo(只需通过扩展 `org.apache .maven.plugin.jar.JarMojo`) 因为将 `pom.xml` 复制到 META-INF 的代码是硬编码在 [org.apache.maven.archiver.MavenArchiver][1](第 487 行)(和我认为没有明显的方法可以从 pom.xml 设置/覆盖此行为)。
更新 :感谢@RomainLinsolas,可以直接将 pom 放在那里。更新了解决方案
关于maven-2 - 在 META-INF 目录下添加有效的 pom.xml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4254812/