编译任务运行成功但没有生成任何类文件

时间:2017-08-02 21:14:18

标签: gradle

我想实现一个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目录下生成。

请建议。

由于

1 个答案:

答案 0 :(得分:0)

要总结答案中的评论,您需要使用GString,例如@ lu.koerfer陈述

  

这样它总是被解释为文字位置(在这种情况下称为$ srcdir的子文件夹)

在字符串中使用变量时需要这样做,如果不需要在字符串中使用变量那么就不需要(那么你就不需要美元符号)。

不确定如何定义变量,但对于构​​建和源目录,理想情况下应使用Gradle提供的变量

buildDir指向构建目录

sourceSets.main.java.getSrcDirs()获取源目录(取决于项目结构)

sourceSets.main.java.srcDirs但请注意,这将返回源目录的集合,具体取决于您指定源集的方式,或者如果您还没有,那么默认情况下将返回maven约定结构src/main/java

对于某些全局变量,请阅读Ext variables