选择性复制maven资源

时间:2017-06-05 18:18:00

标签: java maven resources

我在maven下有一个Java应用程序构建。它包含两个属性文件 - application.default.properties和application.properties。第二个假设补充和/或覆盖一些属性。我在同一个src / main / resources目录中也有logback.xml文件。 我想在jar文件中保留日志记录和默认属性,但将application.properies移动到树的根目录。我将以下部分放入我的pom.xml的构建部分

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${user.dir}</targetPath>
            <filtering>false</filtering>
            <includes>
                <include>application.properties</include>
            </includes>
        </resource>
    </resources> 

它会按预期复制application.properties文件,但其他两个文件从jar文件中消失。 有人可以告诉我我做错了什么以及如何缓解这个问题。 附:我确实浏览了maven文档,但无法在那里找到答案,所以请不要告诉我RTFM,但是如果有,请提供指向它的指针。

2 个答案:

答案 0 :(得分:2)

您需要的是另一个<resource>部分,其中包含 application.default.properties logback.xml ,并以不同方式对待它们。

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${user.dir}</targetPath>
            <filtering>false</filtering>
            <includes>
                <include>application.properties</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <excludes>
                <exclude>application.properties</exclude>
            </excludes>
        </resource>
    </resources>
</build>

application.properties 复制到${user.dir},并将 src / main / resources 中的所有其他内容打包到输出jar中。

答案 1 :(得分:0)

您必须将根目录所需的特定文件移动到另一个目录。

您对包含模式所做的是隐式排除其他文件。如果包含它们,它们也会被移动。