Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 在META-INF目录中添加有效的pom.xml_Maven 2 - Fatal编程技术网

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

Maven 2 在META-INF目录中添加有效的pom.xml,maven-2,Maven 2,当我使用Maven 2(版本2.0.9或2.2.1)构建JAR库时,库的pom.xml被复制到JAR的META-INF/Maven/[groupId]/[artifactId]/目录中 然而,在我的例子中,pom.xml有一个父文件,我更希望得到一个而不是原始的pom.xml文件(或者最终,两者都有) 有办法吗?您可以在安装周期中生成effective-pom.xml <plugin> <groupId>org.apache.maven.plugins</

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

然而,在我的例子中,
pom.xml
有一个父文件,我更希望得到一个而不是原始的
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>

org.apache.maven.plugins
maven帮助插件
2.1.1
产生资源
有效聚甲醛
${project.build.outputDirectory}/META-INF/maven/${project.groupId}/${project.artifactId}/effect-pom.xml
但要将这个effective-pom.xml复制到JAR文件的“META-INF/maven/[groupId]/[artifactId]/`目录下,您必须编写一个自定义JAR mojo(只需扩展“org.apache.maven.plugin.JAR.JAR”),因为将“pom.xml”复制到META-INF的代码是在[org.apache.maven.archiver.MavenArchiver][1]中硬编码的(第487行)(我认为没有明显的方法可以从pom.xml设置/覆盖这种行为)。 更新:由于@RomainLinsolas,可以直接将pom放在那里。更新了解决方案

使用

默认情况下,它会将updatePomFile设置为true


这不是你想要的,而是你想要的。

谢谢。注意,如果你用
${project.build.outputDirectory}/META-INF/maven/${project.groupId}/${project.artifactId}配置这个插件/effect pom.xml
,那么
effect pom.xml
将被放在JAR中的正确位置!@romaintaz+1感谢您提供有关${project.build.outputDirectory}/META-INF/maven/${project.groupId}/${project.artifactId}/effect-pom.xml.:)