如何将自定义构建的 jar 文件注册为 Maven 主要工件?

2024-04-02

我有一个项目预计会提供一个 jar 文件:

<packaging>jar</packaging>

但 jar 是以自定义方式构建的,因此使用 jar:jar 完成的默认打包已被禁用

<plugin>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.3.2</version>
  <executions>
    <execution>
      <id>default-jar</id>
      <phase>none</phase>
    </execution>
  </executions>
</plugin>

但是当我想在现有罐子上应用阴影:阴影时,我收到错误

项目主要工件不存在。

我假设 Maven 不知道我的自定义工具创建的 .jar 文件。如何让它知道,因为antrun AttachArtifact http://maven.apache.org/plugins/maven-antrun-plugin/tasks/attachArtifact.html不起作用

<attachartifact file="./bin/classes.jar" classifier="" type="jar"/>

我得到的错误是

发生 Ant BuildException:org.apache.maven.artifact.InvalidArtifactRTException:对于工件 {:jar}:附加工件必须具有与其对应的主工件不同的 ID。

所以这不是注册主要工件的方法...有没有(无需编写自定义java插件)?

谢谢, 卢卡斯


我检查了 JarMojo 的源代码,它给了我一个如何用 Groovy 解决它的想法(通过 gmaven)

<plugin>
  <groupId>org.codehaus.gmaven</groupId>
  <artifactId>gmaven-plugin</artifactId>
  <version>1.3</version>
  <executions>
    <execution>
      <id>set-main-artifact</id>
      <phase>package</phase>
      <goals> 
        <goal>execute</goal>
      </goals>
      <configuration>
        <source>
          project.artifact.setFile(new File("./bin/classes.jar"))
        </source>
      </configuration>
    </execution>
  </executions>
</plugin>

它有效!:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将自定义构建的 jar 文件注册为 Maven 主要工件? 的相关文章

随机推荐