maven shade插件排除artifactset不起作用

时间:2015-09-24 06:35:52

标签: java maven jar

我正在使用maven shade插件来构建超级jar。但是,我想排除log4j-sl4j12 jar,因为它在我的风暴群集中产生了冲突。我使用下面的插件来排除罐子。

<plugin>
    <artifactId>maven-shade-plugin</artifactId>
    <configuration>
        <createDependencyReducedPom>true</createDependencyReducedPom>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <artifactSet>
                    <excludes>
                        <exclude>org.slf4j:*</exclude>
                    </excludes>
                </artifactSet>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>com.org.SomeClass</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

现在,当我执行maven包时,日志显示它实际上是排除了jar。 [INFO]从阴影jar中排除org.slf4j:slf4j-log4j12:jar:1.7.12。 [INFO]从阴影罐中排除org.slf4j:slf4j-api:jar:1.7.12。

但是,我的最后一个jar仍然有这些类文件。我知道一个替代解决方案,我可以从依赖项中排除jar,但为此,我将必须知道具有slf4j jar的每个依赖项并明确地从它们中的每一个中排除它。任何人都可以解释为什么排除artifactSet不起作用?

0 个答案:

没有答案