gpt4 book ai didi

groovy - 使用 Gradle 执行 wix

转载 作者:行者123 更新时间:2023-12-01 14:38:45 25 4
gpt4 key购买 nike

我有一个编译我的项目的 build.gradle,运行测试创建一个 jar 然后用 launch4j 打包。我也希望能够使用 wix 来创建安装程序,但是我似乎在从 .execute() 启动它时遇到了很多麻烦。

蜡烛和灯所需的文件保存在\build\installer 中。然而,尝试通过在构建文件中调用 execute 来访问这些文件总是会失败。

我在/build/installer 中制作了第二个 build.gradle,它确实有效。它是:

task buildInstaller {

def command = project.rootDir.toString() + "//" +"LSML Setup.wxs"
def candleCommand = ['candle', command]
def candleProc = candleCommand.execute()
candleProc.waitFor()
def lightCommand = ['light' , '-ext', 'WixUIExtension', "LSML Setup.wixobj"]
def lightProc = lightCommand.execute()


}

有什么方法可以从主构建文件运行第二个构建文件并让它工作,或者有什么方法可以直接调用执行并让它工作吗?

谢谢。

最佳答案

如果您的项目由几个 gradle 构建(gradle 项目)组成,您应该使用依赖项。使用 execute() 方法不是一个好主意。我会这样做:

ROOT/蜡烛/蜡烛.gradle

task build(type: Exec) {
commandLine 'cmd', '/C', 'candle.exe', '...'
}

根目录/app/build.gradle

task build(dependsOn: ':candle:build') {
println 'build candle'
}

根目录/app/settings.gradle

include ':candle'
project(':candle').projectDir = "$rootDir/../candle" as File

顺便说一句,我在执行 Exec 任务时遇到了问题,所以在我的项目中我用 and.exec() 替换了它,所以蜡烛任务可能看起来像这样:

task candle << {
def productWxsFile = new File(buildDir, "Product.wxs")
ant.exec(executable:candleExe, failonerror: false, resultproperty: 'candleRc') {
arg(value: '-out')
arg(value: buildDir.absolutePath+"\\")
arg(value: '-arch')
arg(value: 'x86')
arg(value: '-dInstallerDir='+installerDir)
arg(value: '-ext')
arg(value: wixHomeDir+"\\WixUtilExtension.dll")
arg(value: productWxsFile)
arg(value: dataWxsFile)
arg(value: '-v')

}
if (!ant.properties['candleRc'].equals('0')) {
throw new Exception('ant.exec failed rc: '+ant.properties['candleRc'])
}
}

您可以在此处找到有关多项目的更多信息 http://www.gradle.org/docs/current/userguide/multi_project_builds.html .

关于groovy - 使用 Gradle 执行 wix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18803634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com