【问题标题】:JarJar'ed artefact and Maven deploy processJarJar'ed artefact 和 Maven 部署过程
【发布时间】:2014-08-20 11:42:43
【问题描述】:

我目前正在开发针对服务器和 Android 设备的 SDK。 我的可交付 JAR 是 JarJar'ed,从而防止在客户端应用程序中发生任何依赖项泄漏(使用 maven-jarjar-plugin)。

但是,有一个问题让我感到困惑。一个标准的 Maven 部署将发布源、POM 和其他东西。问题是任何与 Maven 兼容的构建工具(例如:Gradle)都会首先根据部署的 POM 解析我们的 SDK,从而触发我的 SDK 依赖项的无意义下载(请记住:它们在最终 JAR 中被 JarJar'ed!)。

我如何部署我的 SDK,以便任何构建工具都知道除了 SDK 之外没有其他东西可以下载?

【问题讨论】:

    标签: java android maven


    【解决方案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

    干杯

    【讨论】:

    • 再次感谢 ;) 将尽快检查。
    猜你喜欢
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 2012-04-02
    • 2013-03-09
    • 2018-05-20
    • 2023-03-21
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多