Maven依赖地狱

时间:2019-02-28 20:29:13

标签: maven jersey dependency-management presto maven-shade-plugin

我正在尝试为Presto编写一个新模块,该模块允许使用Ranger作为授权管理器,但是不幸的是,我遇到了一些依赖管理问题。

某些依赖项存在冲突(目前我仍受Jersey困扰),并且没有适用于项目所有组件的版本。我尝试对其进行阴影处理,以便可以同时使用多个版本,但没有成功。这是我为maven-shade-plugin尝试的配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <shadedArtifactAttached>true</shadedArtifactAttached>
                        <dependencyReducedPomLocation>${project.build.directory}/pom.xml</dependencyReducedPomLocation>
                        <relocations>
                            <relocation>
                                <pattern>com.sun.jersey</pattern>
                                <shadedPattern>shaded.com.sun.jersey</shadedPattern>
                            </relocation>
                        </relocations>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我还试图排除依赖关系,以便在运行时只有一个版本可用,但这会导致NoClassDefFoundException。有人可以帮助我修复此依赖性地狱吗?在此存储库中可以查看完整的项目:

https://github.com/WalkerTR/presto/tree/ranger_plugin

预先感谢您的帮助

0 个答案:

没有答案