当我执行“gradle run”时,我希望java命令在project dir的$projectDir/dist文件夹中执行。这是我的应用程序构建的地方,直接从projectDir运行它是没有意义的。从我的研究中,我一直看到这是不可能的?真的是这样吗?我尝试了以下方法:
application() {
mainClass.set("com.myapp.MainClass")
applicationDefaultJvmArgs = listOf("-Duser.dir=$buildDir\\dist")
}
但这并没有改变工作目录。我可以创建另一个任务:
tasks.register<JavaExec>("runApp") {
classpath = sourceSets["main"].runtimeClasspath
mainClass.set("com.myapp.MainClass")
workingDir = file("$buildDir\\dist")
}
我可以在其中设置工作目录,但不使用gradle自带的标准任务似乎很愚蠢。有什么建议吗?
2条答案
按热度按时间vvppvyoh1#
任何现有任务都可以修改,只要你知道它的名称。知道类型也很重要(当使用Groovy时,它不是关键,但可能非常有用)。所以让我们了解一下
run
任务。Gradle应用程序插件会自动创建一个名为
run
的任务。run
的类型为JavaExec
,该类型具有默认为项目目录的属性workingDir
。有了这些,我们现在可以修改Groovy中现有的
run
任务:或者在Kotlin
另请参见
我也找到了这些答案,但它们比较老,包含一些过时的语法,所以我认为值得重新审视这个问题。
w46czmvw2#
可以重新配置
run
任务来设置工作目录。假定Kotlin构建脚本语言: