请在下面找到脚本以使用gradle清理和构建项目。
在我将outputDir添加到java块中的sourceSets之前,一切工作正常。
在注释outputDir行时,gradle清理和构建成功,但是类文件在我不想要的“build / classes // main”中生成。我想要将类放在目录“build / classes //”中,而不是创建主文件夹并将类文件放在其中。
apply plugin: 'java'
//Declarations
def projectName="SomeProject"
def projectDir="build//classes"
sourceSets {
main {
java {
srcDir 'src'
outputDir = file("${projectDir}")
}
}
}
dependencies {
compile fileTree(include: ['*.jar'],dir: 'lib')
}
jar{
manifest {
attributes 'Main-Class': 'Foo'
attributes 'Class-Path': 'lib/com.jcraft.jsch_0.1.31.jar lib/commons-io-2.6.jar lib/commons-net-3.6.jar lib/javax.mail.jar lib/jsch-0.1.54.jar lib/json-simple-1.1.1.jar lib/jxl-2.6.jar lib/ojdbc8.jar'
}
baseName = '${projectName}'
}
还尝试了
outputdir 'build//classes/
,但发生了与以下相同的错误Could not find method main() for arguments [build_3eivce3rhjp4go01pnr2m3vvmq$_run_closure1_closure6@87800a] on root project 'SomeProject'.
请提出我想念的东西。对我来说似乎是一些基本问题,但无法破解。
最佳答案
请参阅此文档:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.SourceSetOutput.htmloutputDir
是属性,而不是方法,因此您没有使用正确的语法来设置属性值:请改用以下内容:
sourceSets {
main {
java {
srcDir 'src'
outputDir = file("${projectName}")
}
}
}
注意:您在
'${projectName}'
中使用简单的引号',而不是doublequote“:这不能工作,因为您的变量
projectName
将不会被评估。
关于java - Gradle::在sourceSets中设置outputDir时找不到参数main()作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54779313/