Maven プロジェクトがあり、m2eclipse をインストールしました。プロジェクトをビルドすると、src/main/resources 内のファイルが target/classes フォルダーにコピーされません。どんな助けでも大歓迎です。
7 に答える
リソースがコピーされるときとコピーされないとき (つまり、Eclipse ビルドが呼び出されるまではすべて正常に動作する) に関するすべてのコメントを読んだ後、maven2Builderが無効になっている可能性が非常に高くなります。クラスパスを適切に構成する maven2Nature を使用できますが、maven2Builder を無効にすると、アクティブな Java Builder により、ソースのみがコンパイルされてコピーされtarget/classes
ます (または で構成されているもの)。.classpath
非常に単純なデモ プロジェクトの構成を考えてみましょう ( .project
Eclipse プロジェクト ルートのファイル)。
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>m2demo</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<!--
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
-->
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
この例では、maven2Builderにコメントを付けています。これにより、取得している動作とまったく同じ結果になります。
私は通常、実際の内容.project
と.classpath
ファイルの内容を確認するのが好きですが、プロジェクトのプロパティからすべてにアクセスできます。プロジェクトのプロパティに「ビルダー」セクションがあり、「Maven Project Builder」チェックボックス項目があるはずです。
リソースがコピーされない場合、「リソース」が適切に定義されていない可能性があります。リソースとは何かを Maven に示す必要があります。
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<!-- you can define here more than one resource -->
</resources>
...
</build>
私のプロジェクトでは、pom.xml でリソース タグを指定して maven2Builder を構成しても、リソースがコピーされないことに気付きました。これを修正するために、元々あった.classpathファイル(プロジェクトの最上位に存在する)を手動で編集しました
<classpathentry including="**/*.java" kind="src" output="target/classes" path="java_source">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
することが
<classpathentry kind="src" output="target/classes" path="java_source">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
基本的に、including="**/*.java"
コピーする非 .class ファイルを削除する必要があります。
私はこれと同じ問題を抱えていて、プロジェクトからmavenの性質を削除して追加し直しました。次に、リソース ファイルが正しくコピーされました。