当我使用 Maven 2(版本 2.0.92.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/

10-15 23:38