我正在尝试为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
预先感谢您的帮助