如何正确使用maven资源插件

Posted

技术标签:

【中文标题】如何正确使用maven资源插件【英文标题】:how to use maven resource plugin correcly 【发布时间】:2018-04-16 16:42:45 【问题描述】:

项目清理和安装时出现构建失败,

我认为构建失败的原因是 maven 资源插件。

我在构建项目的过程中遇到了以下错误

[DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:2.7:resources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:2.7, parent: sun.misc.Launcher$AppClassLoader@70dea4e]
[WARNING] Error injecting: org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering
java.lang.NoClassDefFoundError: Lorg/sonatype/plexus/build/incremental/BuildContext;
at java.lang.Class.getDeclaredFields0 (Native Method)
at java.lang.Class.privateGetDeclaredFields (Class.java:2583)
at java.lang.Class.getDeclaredFields (Class.java:1916)
at com.google.inject.spi.InjectionPoint.getInjectionPoints (InjectionPoint.java:675)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields (InjectionPoint.java:380)
at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies (ConstructorBindingImpl.java:164)
at com.google.inject`enter code here`.internal.InjectorImpl.getInternalDependencies (InjectorImpl.java:613)
at com.google.inject.internal.InjectorImpl.cleanup (InjectorImpl.java:569)

调试时也会出现以下错误

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.291 s
[INFO] Finished at: 2017-11-04T02:15:13+05:30
[INFO] Final Memory: 10M/245M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources) on project cas: Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources failed: A required class was missing while executing org.apache.maven.plugins:maven-resources-plugin:2.7:resources: Lorg/sonatype/plexus/build/incremental/BuildContext;
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-resources-plugin:2.7

在 pom 中使用了以下 maven 资源插件

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>

请帮我解决这个问题,我尝试了很多方法来解决这个问题,但仍然找不到解决这个问题的方法。

我正在使用以下 maven 版本

buddika@buddika-pc:~$ mvn -version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T13:28:13+05:30)
Maven home: /usr/local/apache-maven/apache-maven-3.5.2
Java version: 1.8.0_73, vendor: Oracle Corporation
Java home: /home/buddika/installs/JDK8/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-98-generic", arch: "amd64", family: "unix"

谢谢...

【问题讨论】:

请显示完整的 pom 文件......因为这看起来很奇怪...... 这是使用maven 3.5.2整理的,谢谢询问 我不这么认为..请显示完整的 pom 文件以便检查真正的问题是什么?... 【参考方案1】:

NoClassDefFoundError:Lorg/sonatype/plexus/build/incremental/BuildContext。意味着没有 sonatype 的 jar ..添加那个 jar 并尝试构建.. 记住 NoClassDefFoundError 意味着 jar 不存在于您的本地..添加它并尝试..

【讨论】:

这是使用maven 3.5.2整理出来的

以上是关于如何正确使用maven资源插件的主要内容,如果未能解决你的问题,请参考以下文章

关于使用maven打包如何聚合资源文件

使用 maven 程序集插件覆盖资源文件

MYECLIPSE自带MAVEN应该如何使用啊

Maven:我的 mojo 如何访问自己的资源?

springboot自带maven插件打包的jar可以被别的springboot项目引用但不能正确使用

Maven 默认生命周期和插件部分