我目前正在为服务器和Android设备开发一个SDK。我可交付的JAR是jarjar‘’ed,从而防止了客户端应用程序(使用maven-jarjar-plugin)中的依赖关系泄漏。
然而,有一个问题令我困惑。标准的Maven部署将提供源代码、POM和其他东西。问题是,任何与Maven兼容的构建工具(例如: Gradle)都将首先根据部署的POM解决我们的SDK,从而触发对我的SDK依赖项的毫无意义的下载(记住:它们在最终的JAR中是JarJar!)。
我如何部署我的SDK,以便任何构建工具都能理解除了SDK之外什么都没有下载呢?
发布于 2014-08-20 12:02:22
奇怪的是,如果jar插件不支持它,我很惊讶。您可以尝试使用树荫插件,它也允许重新定位类,并且可以确保它为您的工件创建和部署了一个修改后的pom,它不会向使用您的构件的其他项目公开您的嵌入式依赖关系。
见:
http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#createDependencyReducedPom
干杯
https://stackoverflow.com/questions/25403800
复制相似问题