我想实现一个gradle构建脚本,它编译一些java类并将其复制到tomcat目录。我不想使用Gradle Java插件,因为它做了许多不相关的事情。我想定义自己的编译和放大器部署完成它的任务。我已经实现了如下 -
task compile (type: JavaCompile) {
source = fileTree('$srcdir')
destinationDir = file('$builddir')
classpath = files('lib')
sourceCompatibility = '1.8'
}
task deploy (type: Copy) {
dependsOn compile
from fileTree('build') {
include fileTree('classes')
}
from fileTree('lib') {
include '*'
}
into '${tomcathome}//${projectname}'
}
我还没有接触到部署任务。当我运行编译任务时,它运行成功但不生成任何类文件。我希望它在/ build目录下生成。
请建议。
由于
答案 0 :(得分:0)
要总结答案中的评论,您需要使用GString,例如@ lu.koerfer陈述
这样它总是被解释为文字位置(在这种情况下称为$ srcdir的子文件夹)
在字符串中使用变量时需要这样做,如果不需要在字符串中使用变量那么就不需要(那么你就不需要美元符号)。
不确定如何定义变量,但对于构建和源目录,理想情况下应使用Gradle提供的变量
buildDir
指向构建目录
sourceSets.main.java.getSrcDirs()
获取源目录(取决于项目结构)
或sourceSets.main.java.srcDirs
但请注意,这将返回源目录的集合,具体取决于您指定源集的方式,或者如果您还没有,那么默认情况下将返回maven约定结构src/main/java
对于某些全局变量,请阅读Ext variables