gpt4 book ai didi

android-studio - 在Android Studio中使用Gradle编译之前如何运行jar?

转载 作者:行者123 更新时间:2023-12-03 04:59:26 25 4
gpt4 key购买 nike

好的,在构建项目之前,我在运行jar时遇到了几个问题,但最终找到了解决方案。该jar文件将基于cvs文件生成翻译文件。

如果我运行./gradlew taskname,则将生成项目,脚本将运行并生成文件。如果我从Android Studio运行,一切都很好,但是如果我运行./gradlew(无目标),则将构建项目,脚本似乎可以运行,但jar生成的文件不会出现!!!

任何想法为什么会这样?

注意:jar使用mkdirs并且可以正常工作。

Gradle代码:

task translationsTask(type: Exec) {
println("Running jar from gradle with shell script.")
workingDir rootDir
commandLine './test.sh'
}
preBuild.dependsOn(translationsTask)

android {
...
}

最佳答案

Gradle构建的three distinct phases包括配置一和执行一。

您的translationsTask任务是Exec任务。 workingDircommandLine在此处进行配置。这些参数将在执行阶段使用。这样编写的println语句将包含在配置阶段。 doFirstdoLast闭包允许在执行阶段添加自定义操作。

这是带有适当消息的任务:

task translationsTask(type: Exec) {
println("Configuring the translationsTask")
workingDir rootDir
commandLine './test.sh'
doFirst {
println("Running jar from gradle with shell script, before the command line")
}
doLast {
println("Running jar from gradle with shell script, after the command line")
}
}

仅调用 gradlew将仅显示“配置translationsTask”(没有执行阶段,也没有目标任务)。调用 gradlew taskname会显示所有消息,因为存在目标任务,并且调用了Android preBuild任务(因此 translationsTask也取决于它)

关于android-studio - 在Android Studio中使用Gradle编译之前如何运行jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332056/

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