我对gradle有点新...我很久以前创建了一个Java API(现在是一个构建jar的Gradle项目),它有一些敏感部分负责解密公司数据以及一些非敏感的东西。我有一个新项目需要部分API,我自然不想将整个API交给其他开发人员/承包商。
理想情况下,我想要做的是创建两个变体,(为了论证,我们可以说“Pro”和“Lite” - 我猜这是一个简单的产品线方法)。
是否可以使用gradle建造两个不同的罐子? 1. Pro是完整的API 2.剥离了相关类的Lite API。
我在网上看到一些“风味”,但似乎所有的点击都与Android开发和属性有关。
最糟糕的情况是我创建了一个只包含所需代码的新项目,但是如果我向API中添加新功能/错误修复,我就无法将它们合并到一个项目中。
另一种方法是将现有项目构建到不同的项目中,并将安全相关的东西(包括I / O和模型)作为不同的jar。
非常感谢任何可以在这里阐明的人......
答案 0 :(得分:1)
您可以将其拆分为具有专业版和精简版的多模块项目。在构建时,您可以将pro和lite的二进制文件发布到工件库(nexus,artifactory等),然后您将拥有2个单独的jar。对于公共代码,你可以有一个第3个模块,它有2个共享的东西,而lite和pro都可以依赖它。
答案 1 :(得分:1)
单个Gradle项目可以生成任意数量的JAR。您可以简单地添加另一个Jar任务,并为其提供一个独特的分类器,以区别于“标准”库。
task jarLite(type: Jar) {
classifier = 'lite'
exclude '**/SomeProprietaryCode.class'
with jar
}