2

Maven プロジェクトがあり、m2eclipse をインストールしました。プロジェクトをビルドすると、src/main/resources 内のファイルが target/classes フォルダーにコピーされません。どんな助けでも大歓迎です。

4

7 に答える 7

3

リソースがコピーされるときとコピーされないとき (つまり、Eclipse ビルドが呼び出されるまではすべて正常に動作する) に関するすべてのコメントを読んだ後、maven2Builderが無効になっている可能性が非常に高くなります。クラスパスを適切に構成する maven2Nature を使用できますが、maven2Builder を無効にすると、アクティブな Java Builder により、ソースのみがコンパイルされてコピーされtarget/classesます (または で構成されているもの)。.classpath

非常に単純なデモ プロジェクトの構成を考えてみましょう ( .projectEclipse プロジェクト ルートのファイル)。

<?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」チェックボックス項目があるはずです。

于 2012-08-02T14:03:44.647 に答える
3

リソースがコピーされない場合、「リソース」が適切に定義されていない可能性があります。リソースとは何かを Maven に示す必要があります。

<build>
    ...
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
        <!-- you can define here more than one resource -->
    </resources>
    ...
 </build>
于 2012-08-02T10:28:51.647 に答える
1

私のプロジェクトでは、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 ファイルを削除する必要があります。

于 2013-05-21T20:10:41.693 に答える
1

私はこれと同じ問題を抱えていて、プロジェクトからmavenの性質を削除して追加し直しました。次に、リソース ファイルが正しくコピーされました。

于 2014-04-24T01:07:57.480 に答える