web-dev-qa-db-ja.com

Maven:jarと一緒にリソースファイルを配置する方法

\ src\main\resources\logback.xmlファイルがあります。 mvn packageを実行すると、デフォルトでjarに配置されます。どうすればMavenを内部ではなくjarの隣に配置できますか?

つまり、Mavenにリソースをjarがある同じフォルダーにコピーさせたいだけです。

29

プラグイン定義は不要です、ビルドリソースを編集するだけです:

<build>
    <resources>
        <!-- regular resource processsing for everything except logback.xml -->
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>logback.xml</exclude>
            </excludes>
        </resource>
        <!-- resource processsing with a different output directory
             for logback.xml -->
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>logback.xml</include>
            </includes>
            <!-- relative to target/classes
                 i.e. ${project.build.outputDirectory} -->
            <targetPath>..</targetPath>
        </resource>
    </resources>
</build>

参照:

72

Maven Assemblyプラグイン を使用して、両方を含むZipファイルを作成できます。

Maven Antrun plugin などを使用して任意のファイルを配置することもできますが、プロジェクトごとに単一のアーティファクトのアイデアはMaven内部に深く組み込まれているため、他の場所で追い詰められる可能性があります。

0
Sasha O

そのファイルを除外します: http://maven.Apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

そして、Maven Antrunプラグインを使用してファイルをコピーします。

ただし、後者はあまり意味がありません。サーバーに配置する構成ファイルの場合は、単に手動でコピーします。

0
apetrelli