Maven JAR插件3.0.2错误:您必须使用分类器将补充工件附加到项目中,而不是替换它们

Maven JAR插件3.0.2错误:您必须使用分类器将补充工件附加到项目中,而不是替换它们,第1张

Maven JAR插件3.0.2错误:您必须使用分类器将补充工件附加到项目中,而不是替换它们

Jar插件实际上是通过以下配置执行两次:

<plugin>  <artifactId>maven-jar-plugin</artifactId>  <version>3.0.2</version>  <executions>    <execution>      <goals>        <goal>jar</goal>      </goals>    </execution>  </executions></plugin>

如果使用这样的配置检查日志,将显示以下内容:

[INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ test ---[INFO] Building jar: ...testtargettest-0.0.1-SNAPSHOT.jar[INFO] [INFO] --- maven-jar-plugin:3.0.2:jar (default) @ test ---[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------

表示该插件实际上执行了两次。发生的情况是,在具有打包的项目中的Jar插件

jar
具有绑定到
package
phase
的默认执行
。此默认执行是ID为的日志中提到的执行
default-jar

当您配置的

<execution>
插件中,您实际配置的新的执行,其中
jar
插件的目标是要调用。由于
jar
目标默认绑定到
package
阶段,因此在
jar
打包固有的默认绑定之后,将在那个阶段执行该执行。而且由于该插件已经运行,所以失败了,因为再次运行它实际上会替换第一次运行时已经产生的主要工件。在MJAR-198的插件版本3.0.0中添加了此错误,因为这种情况很可能是错误配置,应尽早检测到。

这样,解决方法很简单:没有执行可指定目标的执行

jar
,而让默认目标(来自
jar
包装)进行工作。
jar
由于默认执行,即使没有明确配置目标,仍将创建JAR
。如果还需要测试JAR,则仍然需要配置插件以执行以下 *** 作:

<plugin>  <artifactId>maven-jar-plugin</artifactId>  <version>3.0.2</version>  <executions>    <execution>      <goals>        <goal>test-jar</goal>      </goals>    </execution>  </executions></plugin>

但请注意,

jar
未指定目标。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5131595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存