Java Maven:未能执行目标org.apache.Maven.plugins:Maven资源plugin:2.7:resources

Java Maven:未能执行目标org.apache.Maven.plugins:Maven资源plugin:2.7:resources,java,eclipse,maven,maven-plugin,Java,Eclipse,Maven,Maven Plugin,我正在使用Maven构建我的项目。我的maven版本是apache-maven-3.0.4。我正在使用Eclipse Luna。当我尝试构建我的项目时,我得到以下错误 [错误]无法执行目标org.apache.maven.plugins:maven资源插件:2.7:project OrionCommunity上的资源(默认资源):标记无效->[Help 1] 以下是我运行mvn clean install时的堆栈跟踪-X: [INFO] -----------------------------

我正在使用Maven构建我的项目。我的maven版本是apache-maven-3.0.4。我正在使用Eclipse Luna。当我尝试构建我的项目时,我得到以下错误

[错误]无法执行目标org.apache.maven.plugins:maven资源插件:2.7:project OrionCommunity上的资源(默认资源):标记无效->[Help 1]

以下是我运行mvn clean install时的堆栈跟踪
-X

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:53.295s
[INFO] Finished at: Thu Oct 09 20:00:26 IST 2014
[INFO] Final Memory: 9M/25M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources) on project OrionCommunity: Mark invalid -> [Hel
p 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources)
 on project OrionCommunity: Mark invalid
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Mark invalid
        at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:306)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        ... 19 more
Caused by: org.apache.maven.shared.filtering.MavenFilteringException: Mark invalid
        at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:129)
        at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filterResources(DefaultMavenResourcesFiltering.java:264)
        at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:300)
        ... 21 more
Caused by: java.io.IOException: Mark invalid
        at java.io.BufferedReader.reset(BufferedReader.java:485)
        at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:416)
        at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:205)
        at java.io.Reader.read(Reader.java:123)
        at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:181)
        at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:168)
        at org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1856)
        at org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1804)
        at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:114)
        ... 23 more

我的maven存储库位于D:/mavenrepo下。我已经完全删除了repo中存在的所有jar,并进行了干净的安装。但我仍然会遇到此错误。

请为我删除此工作:

<filtering>true</filtering>
true
我想这是由以下原因造成的:

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


在添加maven filtering 1.3之后,它就消失了:

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
          <dependencies>
            <dependency>
                <groupId>org.apache.maven.shared</groupId>
                <artifactId>maven-filtering</artifactId>
                <version>1.3</version>
            </dependency>
          </dependencies>
        </plugin>

org.apache.maven.plugins
maven资源插件
2.7
org.apache.maven.shared
马文滤波
1.3

我也遇到了这个问题,因为我正在筛选/src/main/resources,忘了我已经将密钥库(*.jks)二进制文件添加到此目录中

添加一个包含二进制文件排除项的“资源”块,您的问题可能会得到解决

<build>
  <finalName>somename</finalName>
  <testResources>
    <testResource>
      <directory>src/test/resources</directory>
      <filtering>false</filtering>
    </testResource>
  </testResources>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
      <excludes>
        <exclude>*.jks</exclude>
        <exclude>*.png</exclude>
      </excludes>        
    </resource>
  </resources>
...

名字
src/测试/资源
假的
src/main/resources
真的
*.jks
*.png
...

我也遇到了同样的问题,下面的过滤错误对我有效。 你可以试试同样的

<testResources>
    <testResource>
        <directory>src/test/java</directory>
        <filtering>false</filtering>
    </testResource>
    <testResource>
        <directory>src/test/resources</directory>
        <filtering>false</filtering>
    </testResource>
</testResources>

src/test/java
假的
src/测试/资源
假的

对我有效的方法是添加include标记,以便准确指定要筛选的内容

看来资源插件在整个src/main/resource文件夹中都有问题,可能是因为里面有一些特定的文件

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application.yml</include>
            </includes>
        </resource>
    </resources>

src/main/resources
真的
application.yml

在我的例子中,
targetPath
没有任何值,对于文件
目录
中有问题的文件,它在
resources-->resource
中为空。 我必须将其更新为
global
,如
code示例2中所示,然后重新运行build来修复该问题

代码示例1(有问题)


src/main/locale
真的
*.xml
*.config
*.物业

代码示例2(已应用修复)


src/main/locale
真的
全球的
*.xml
*.config
*.物业

来自官方文件

警告:不要过滤带有二进制内容(如图像)的文件!这 极有可能导致输出损坏

如果您同时拥有文本文件和二进制文件作为资源,它就是 建议使用两个单独的文件夹。一个文件夹 未筛选资源的src/main/resources(默认值) 和另一个文件夹src/main/resources,该文件夹筛选出 被过滤


...
...
src/main/resources已筛选
真的
...
...
...
现在您可以将这些文件放入src/main/resources中,而这些文件不应该 过滤,并将其他文件过滤到src/main/resources中

如前所述,过滤图像、pdf等二进制文件。 可能导致输出损坏。为防止此类问题,您可以 配置将不被筛选的文件扩展名


最肯定的是,您的目录中有无法筛选的文件。因此,您必须指定尚未筛选的扩展

在我的例子中,这是IntelliJ的一次确认,我通过从命令行构建项目解决了这个问题,并且成功了

由于我的resources/application.properties中的字符“@”,我出现了相同的错误。我所做的只是将“@”替换为unicode值:
eureka.client.serviceUrl.defaultZone=http://discUser:discPassword\u0040localhost:8082/eureka/
,它工作起来很有魅力。我知道“@”在.properties文件中是一个完全有效的字符,并且该文件采用UTF-8编码,这让我至今对我的职业生涯产生疑问,但如果您删除资源文件的内容,看看是否可以通过此错误,则值得一试。

这可能是IntellijIdea IDE中mvn主路径的一个问题。对我来说,当我正确设置mvn主目录时,这个问题就解决了。

我通过将Resources文件的编码格式更改为UTF-8解决了这个问题。

我通过引用最新的maven资源插件版本解决了同样的问题:


org.apache.maven.plugins
maven资源插件
3.2.0

没有pom.xml,没有日志(尾部除外)。不可能帮助您或重现问题。阅读这里:这看起来像是你在过滤一些你不应该过滤的文件。制作
mvn-X编译器| tee mvn.log
并检查日志文件以进行
[DEBUG]筛选
。在那里,您可以看到正在筛选的文件。我的假设是您没有将文件添加到
非过滤文件扩展
@khmarbaise,非常感谢。你是我今天的救世主。按照你的建议,我运行了命令,可以在日志中看到资源被过滤。在我的pom.xml中,我有下面一段代码src/main/resources true,在对它进行注释之后,构建成功了。正在筛选的资源对于构建来说是不需要的。但是我不确定为什么构建不能与我同事得到的代码一起工作
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application.yml</include>
            </includes>
        </resource>
    </resources>
<build>
    <resources>
        <resource>
            <directory>src/main/locale</directory>
            <filtering>true</filtering>
            <targetPath></targetPath>
            <includes>
                <include>*.xml</include>
                <include>*.config</include>
                <include>*.properties</include>
            </includes>
        </resource>
    </resources>
<build>
    <resources>
        <resource>
            <directory>src/main/locale</directory>
            <filtering>true</filtering>
            <targetPath>global</targetPath>
            <includes>
                <include>*.xml</include>
                <include>*.config</include>
                <include>*.properties</include>
            </includes>
        </resource>
    </resources>
<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources-filtered</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>