Mavenを使用してプロジェクトを構築しています。私のMavenバージョンはApache-maven-3.0.4です。 Eclipse Lunaを使用しています。プロジェクトをビルドしようとすると、次のエラーが表示されます
[エラー] OrionCommunityプロジェクトの目標org.Apache.maven.plugins:maven-resources-plugin:2.7:resources(default-resources)の実行に失敗しました:無効にマーク-> [ヘルプ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の下にあります。リポジトリにあるすべてのjarファイルを完全に削除し、クリーンインストールを実行しました。しかし、私はまだこのエラーを受け取ります。
と:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
</plugin>
次の例外が発生していました。
...
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:132)
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:208)
... 25 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)
... 27 more
Caused by: Java.io.IOException: Mark invalid
at Java.io.BufferedReader.reset(BufferedReader.Java:505)
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:140)
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)
... 29 more
次に、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>
/ 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>
...
私のために働いたのは、フィルタリングしたいものを正確に指定するためにincludeタグを追加することです。
リソースプラグインはsrc/main/resourceフォルダー全体に問題があるようです。これはおそらく内部の特定のファイルが原因です。
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.yml</include>
</includes>
</resource>
</resources>
公式文書から
警告:画像などのバイナリコンテンツを含むファイルはフィルタリングしないでください!これにより、出力が破損する可能性が高くなります。
リソースとしてテキストファイルとバイナリファイルの両方がある場合は、2つのフォルダーを分離することをお勧めします。 1つのフォルダーsrc/main/resources(デフォルト)はフィルターされていないリソース用で、別のフォルダーsrc/main/resources-filteredはフィルターされたリソース用です。
<project>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources-filtered</directory>
<filtering>true</filtering>
</resource>
...
</resources>
...
</build>
...
</project>
これで、これらのファイルをフィルタリングしないsrc/main/resourcesに配置し、他のファイルをsrc/main/resources-filteredに配置できます。
すでに述べたように、画像、pdfなどのバイナリファイルのフィルタリング出力が破損する可能性があります。このような問題を防ぐために、フィルタリングされないファイル拡張子を設定できます。
最も確かに、フィルタリングできないファイルがディレクトリにあります。そのため、フィルタリングされていない拡張子を指定する必要があります。
私の場合、targetPath
には値がありませんでした。問題のあるファイルdirectory
のresources --> resource
には空白がありました。 Code Sample 2
にあるようにglobal
に更新し、ビルドを再実行して問題を修正する必要がありました。
コードサンプル1(問題あり)
<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>
コードサンプル2(修正適用済み)
<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>
私の場合、それはIntelliJとの競合でした。コマンドラインからプロジェクトをビルドすることで解決しましたが、うまくいきました!
私は同じ問題に直面し、私のために働いている下のようなフィルタリングを偽りました。同じことを試すことができます...
<testResources>
<testResource>
<directory>src/test/Java</directory>
<filtering>false</filtering>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<filtering>false</filtering>
</testResource>
</testResources>