web-dev-qa-db-ja.com

Mavenを使用してリソースをsrcターゲットディレクトリにコピーする方法は?

私は現在、pom.xmlファイルに以下を含む既存のプロジェクトに取り組んでいます:

<resources>
    <resource>
        <filtering>false</filtering>
        <directory>src</directory>
        <includes>
            <include>**/*.properties</include>
        </includes>
    </resource>
</resources>

基本パスに、プロパティファイルを含むプロパティと呼ばれるディレクトリがあります。 srcディレクトリのproperties /の下に含まれるすべてのプロパティファイルをパッケージ化するときにコピーします(そうしないと、設定ファイルが見つからないためプログラムがクラッシュします)。

だから私の質問は:

Mavenで、srcディレクトリの下にないリソースファイルを含めるにはどうすればよいですか?

私はこれを試してみましたが、うまくいかないようです:

<resources>
    <resource>
        <filtering>false</filtering>
        <directory>src</directory>
        <includes>
            <include>**/*.properties</include>
            <include>../properties/**</include>
        </includes>
    </resource>
</resources>

ご協力いただきありがとうございます。

14
stankoua

ファイル構造が次のような場合: Standard Directory Layout

enter image description here

次に、リソース要素を追加する必要はありません。 Mavenは、[default/src/main/resourcesフォルダーにあるすべてのファイルとフォルダーをビルドフォルダーにコピーし、コンパイル済みクラスパスファイルのルートに配置します。
たとえば、configuration.propertiesというファイルが/src/main/resources/configuration.propertiesにある場合、mvn clean compileを実行すると、このファイルは/target/classes/configuration.propertiesにコピーされます。その部分を削除すると、ファイルは必要な場所に配置されます

<resource>
    <filtering>false</filtering>
    <directory>src</directory>
    <includes>
        <include>**/*.properties</include>
    </includes>
</resource>
21
zpontikas

プロジェクト構造を変更せずにプロジェクトをantからmavenに移行することにより、ビルドでsourceDirectory testSourceDirectoryを設定し、次のフェーズでmaven-resource-pluginを使用して、目標を実行します。

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources01</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes</outputDirectory>
                        <encoding>UTF-8</encoding>
                        <resources>
                            <resource>
                                <directory>${basedir}/src</directory>
                                <includes>
                                    <include>**/*.properties</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
                <execution>
                    <id>copy-resources02</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/build/lib</outputDirectory>
                        <encoding>UTF-8</encoding>
                        <resources>
                            <resource>
                                <directory>${basedir}/target/</directory>
                                <include>*.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
10
aberes

ソースから宛先にすべてをコピーするために、私は次を使用しました

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes/static/</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/gui/build/</directory>
                                <includes>
                                    <include>**/*.*</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
0
147.3k