我目前正在开发针对服务器和Android设备的SDK。 我的可交付成果JAR是JarJar,因此可以防止客户端应用程序中发生任何依赖性泄漏(使用maven-jarjar-plugin)。
然而,有一个问题令我感到困惑。标准的Maven部署将提供源,POM和其他东西。问题是,任何与Maven兼容的构建工具(例如:Gradle)将首先根据部署的POM解析我们的SDK,从而触发我的SDK依赖项的无意义下载(请记住:它们是最终JAR中的JarJar! )。
如何部署我的SDK以便任何构建工具都能理解除了要下载的SDK之外什么都没有?
答案 0 :(得分:1)
奇怪的是,如果jar jar插件本身不支持它,我会很惊讶。您可以尝试使用shade插件,该插件也允许重新定位类,并确保它为您的工件创建和部署修改后的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
欢呼声