当我使用Maven 2(版本2.0.9
或2.2.1
)构建JAR库时,库的pom.xml
将复制到JAR的META-INF/maven/[groupId]/[artifactId]/
目录中。
但是,在我的情况下,pom.xml
有一个父级,我更愿意获取effective-pom而不是原始的pom.xml
文件(或最终获得这两个文件)
有办法吗?
答案 0 :(得分:4)
您可以在安装周期
期间生成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}\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
),因为复制了META-INF pom.xml
在org.apache.maven.archiver.MavenArchiver中进行了硬编码(第487行)(我认为没有明显的方法可以从pom.xml设置/覆盖此行为)。
答案 1 :(得分:0)