java - 两种配置编译gradle

标签 java gradle build.gradle launch4j shadowjar

我有一个 gradle 项目。该项目包含许多模块。 我想制作两个不同的可执行文件,其中某些模块已激活或未激活。 我有一个包含 module1 和 module2 的可执行文件,如下所示:

dependencies {
    compile project(':module1')
    compile project(':module2')
}

我想要一个包含 module1 和 module2 的可执行文件,以及另一个仅包含 module1 的可执行文件。

为了生成可执行文件,我使用了 launch4j 和 Shadowjar。

我怎样才能做到这一点?

谢谢

最佳答案

你可以使用我的 java-flavours-plugin

plugins {
    id "com.lazan.javaflavours" version "1.2"
}
javaFlavours {
    flavour 'version1'
    flavour 'version2'
}
dependencies {
    compile 'some:common-dependency:1.0'
    version1Compile project(':module1')
    version2Compile project(':module2')
}

每个 flavor (例如版本1和版本2)都会有一个jar任务,该jar可以被下游模块/任务消耗。您还可以引用sourceSets.version1.runtimeClasspath等。

注意:该插件支持特定风格的 java 源和资源。不确定您是否需要该功能。

关于java - 两种配置编译gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47511043/

相关文章:

android - gradle.properties vs buildscript ext 哪个更好

android - Gradle 依赖排除不起作用

java - 完全奇怪的 ClassCastException

android-studio - Gradle同步后Android Studio变慢

groovy - Gradle 2 - 自定义插件的 CopySpec 属性

java - Google AutoValue 无法识别 AutoValue_CustomType

android - Gradle 的依赖缓存可能已损坏

java - Netty:使用单个 ServerBootstrap 监听多个地址/端口

java - 在 Android 上通过 jni 将 byte[] 传递给 C 时出现问题

java - 从对象创建 Jackson ObjectNode