Spring maven shade插件的附加变压器的使用

Spring maven shade插件的附加变压器的使用,spring,maven,Spring,Maven,好的,我遇到了一个典型的问题,我需要创建一个uber jar,但是我的项目依赖项有多个spring.handlers和spring.schemas文件。我四处搜索,发现我的问题需要我使用maven shade插件,以及它的附加变压器。问题是,当我添加配置并运行目标时,它不会合并文件;更重要的是,我可以为appender或资源文件添加一个虚假的类路径,它不会抱怨,这让我相信它甚至没有试图执行转换器 execute-mvn编译包shade:shade <build> &l

好的,我遇到了一个典型的问题,我需要创建一个uber jar,但是我的项目依赖项有多个spring.handlers和spring.schemas文件。我四处搜索,发现我的问题需要我使用maven shade插件,以及它的附加变压器。问题是,当我添加配置并运行目标时,它不会合并文件;更重要的是,我可以为appender或资源文件添加一个虚假的类路径,它不会抱怨,这让我相信它甚至没有试图执行转换器

execute-mvn编译包shade:shade

    <build>
    <finalName>mongo-dictionary</finalName>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.7.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration> 
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.schemas</resource>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

这个插件配置在哪里,你能确保它在正确的位置吗?你正在为其创建uber jar的项目的build->plugins元素。我的配置与我的配置相同


另外,您不需要单独执行shade:shade。运行mvn包将为您做到这一点

我将我的插件配置为pluginManagement元素的子元素,一旦我去掉pluginManagement标签,一切都会按照广告的方式运行。

因此,这里是pom.xml的整个构建部分。我添加了整个构建部分。请检查并让我知道是否有任何问题我将我的插件配置为pluginManagement元素的子元素,一旦我摆脱了pluginManagement阶段,一切都按照广告的方式运行。感谢您为我指出了正确的方向这应该是公认的答案-请添加一个工作示例,如果可能的话,说明发生了什么变化。