在META-INF目录中添加有效的pom.xml

时间:2010-11-23 10:02:12

标签: maven-2

当我使用Maven 2(版本2.0.92.2.1)构建JAR库时,库的pom.xml将复制到JAR的META-INF/maven/[groupId]/[artifactId]/目录中。

但是,在我的情况下,pom.xml有一个父级,我更愿意获取effective-pom而不是原始的pom.xml文件(或最终获得这两个文件)

有办法吗?

2 个答案:

答案 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.xmlorg.apache.maven.archiver.MavenArchiver中进行了硬编码(第487行)(我认为没有明显的方法可以从pom.xml设置/覆盖此行为)。

答案 1 :(得分:0)

使用https://www.mojohaus.org/flatten-maven-plugin/

它将默认将updatePomFile设置为true。

不是您要的,而是您想要的。