0

我对 gradle 有点陌生……很久以前,我创建了一个 Java API(现在是一个构建 jar 的 Gradle 项目),其中有一些敏感部分负责解密公司数据以及一些非敏感内容。我有一个需要此 API 的一部分的新项目,自然我不想将整个 API 提供给其他开发人员/承包商。

理想情况下,我想做的是创建两个变体(为了争论,让我们说“Pro”和“Lite”——我猜是一种简单的产品线方法)。

是否可以使用 gradle 构建两个不同的 jar?
1. 一个是 Pro 完整 API 2. 一个是 Lite API 剥离了相关类。

我在网上看到一些“风味”的提及,但似乎所有的热门都与 Android 开发和属性有关。

更糟糕的情况是我创建了一个仅包含所需代码的新项目,但如果我向 API 添加新功能/错误修复,我将无法获得将它们合并到单个项目中的好处。

另一种方法可能是将现有项目构建为不同的项目,并将与安全相关的东西(I/O 和模型)作为不同的 jar。

非常感谢任何可以在这里阐明的人...

4

2 回答 2

1

单个 Gradle 项目可以生成任意数量的 JAR。您可以简单地添加另一个 Jar 任务并给它一个唯一的分类器,以将其与“标准”库区分开来。

task jarLite(type: Jar) {
    classifier = 'lite'
    exclude '**/SomeProprietaryCode.class'
    with jar
}
于 2014-10-16T21:51:17.203 回答
1

您可以将其拆分为具有 pro 和 lite 版本的多模块项目。构建时,您可以将 pro 和 lite 的二进制文件发布到您的工件存储库(nexus、artifactory 等),然后您将拥有 2 个单独的 jar。对于通用代码,您可以拥有一个在 2 之间共享内容的第三个模块,并且 lite 和 pro 都可以依赖它。

于 2014-10-16T20:19:56.710 回答