Maven Assembly插件和资源

Kri*_*ris 6 log4j maven maven-assembly-plugin

当使用Maven程序集插件(版本2.2-beta-5)时,如果它们具有相同的路径,则看起来组装的jar将包含来自依赖项的资源,而不是正在组装的项目.具体来说,我试图弄清楚如何使用项目的log4j配置文件,而不是依赖项目.

PROJECT1

-src

- 主要

---资源

----的log4j.xml

如果Project1有一个依赖项 - 称之为Project2--在src/main/resources中也有一个log4j.xml文件,那么在运行程序集插件后,组装的jar包含Project2的log4j.xml文件而不是Project1.我相信这是因为所有的依赖项首先被解压缩,因此当它尝试解压缩顶层项目时,log4j.xml文件已经存在,因此它不会被覆盖.

是否有一个make程序集插件使用项目的文件而不是依赖项?

Rag*_*ram 1

一种可能性是从程序集创建中显式排除相关文件。

    <dependencySet>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>${project.groupId}:Project2</include>
        </includes>
        <unpack>true</unpack>
        <unpackOptions>
            <excludes>
                <exclude>**/log4j.xml</exclude>
            </excludes>
        </unpackOptions>
    </dependencySet>
Run Code Online (Sandbox Code Playgroud)