Maven: how to place resource file together with ja

2019-01-21 08:23发布

I have \src\main\resources\logback.xml file. When I run mvn package it is placed into the jar by default. How do I make Maven place it next to jar, not inside?

So, well, I just want Maven to copy the resource to the same folder where jar will be.

3条回答
Rolldiameter
2楼-- · 2019-01-21 08:28

You can build a ZIP file containing both using the Maven Assembly plugin.

You can also use Maven Antrun plugin or similar to put whatever file you want but the idea of single artifact per project is built deep into Maven internals so there is a chance it will hunt you down elsewhere.

查看更多
劳资没心,怎么记你
3楼-- · 2019-01-21 08:35

Exclude that file: http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

And then use the Maven Antrun plugin to copy the file.

However, the latter part does not make much sense. If it is a configuration file to put in a server, simply manually copy it.

查看更多
孤傲高冷的网名
4楼-- · 2019-01-21 08:41

No plugin definitions needed, just edit the build resources:

<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>

Reference:

查看更多
登录 后发表回答