Gradle创建不同的发行版

时间:2017-07-21 13:33:17

标签: java gradle

我是gradle的新手,我正在尝试创建一个Java应用程序的多个应用程序/发行版,以便在不同的操作系统中使用。

我需要一个应用程序/发行版:Windows64,Windows32,Linux64,Linux32。 它们之间的区别在于每个发行版都有不同的依赖项(来自外部项目的jar文件),并且某些发行版中也必须包含一些dll文件。

最后,Windows发行版不需要unix构建脚本,反之亦然。

我已经尝试阅读gradle用户指南并在线搜索答案,但我没有任何相关经验,我也不知道该寻找什么。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

您可能会使用我的java-flavours插件

例如:

ext {
    someApiVersion = '1.0'
}
plugins {
    id "com.lazan.javaflavours" version "1.2"
}
javaFlavours {
    flavour 'windows32'
    flavour 'windows64'
    flavour 'linux32'
    flavour 'linux64'
}
dependencies {
    compile           "log4j:log4j:1.2.17"
    compile           "foo:xxx-interfaces:$someApiVersion"
    compileWindows32  "foo:xxx-windows32:$someApiVersion"
    compileWindows64  "foo:xxx-windows64:$someApiVersion"
    // etc
}

每个flavour都会通过将特定来源(src/main/javasrc/main/resources)加入常见来源(src/$flavour/javasrc/$flavour/resources)来生成单独的广告素材。还有对特定风味测试的支持。

答案 1 :(得分:0)

您可以使用不同的构建脚本(windows64.gradlewindows32.gradlelinux64.gradlelinux32.gradle等...)并加载它们,这要归功于特定的项目属性

def defaultPlatform = 'windows64'
ext.platform = project.hasProperty('pf') ? pf : defaultPlatform

apply from: "${ext.platform}.gradle"

然后只需运行gradle -Ppf=linux64 buildgradle -Ppf=linux64 yourCustomTask

在每个.gradle文件中,添加特定依赖项等...