Gradle能处理不符合默认约定的构建目录结构吗?

26

我正在处理一个基于+ 的项目,它具有以下目录结构:

projectRoot/src
projectRoot/classes
projectRoot/conf
projectRoot/webservices

这在中非常完美地工作,但我想迁移到

是否有一种方法可以在Gradle中定义非Maven目录结构,还是应该考虑使用Maven

3个回答

35

14

使用非标准项目目录结构的示例(自定义布局):

sourceSets {
    main {
        java {
            srcDir 'sources/main/java'
        }
        outputDir = file("$workDir/client/program")
        // For older version (now deprecated):
        //output.classesDir = "$workDir/client/program"
    }
    test {
        java {
            srcDir 'sources/test/java'
        }
        outputDir = file("$workDir/client/tests")
        // For older versions (now deprecated):
        //output.classesDir = "$workDir/client/tests"
        //output.resourcesDir = "$workDir/client/tests"
    }
    resources {
        srcDirs 'sources/test/res'
    }
}

经过数小时的搜索,我终于解决了我的问题。 由于某种原因,--project-root参数和rootProject.projectDir被忽略了?无论我怎么做,在build.gradle中使用"println project.projectDir"总是回显build.gradle所在的文件夹。使用:srcDir '../../src/main/java" 解决了这个问题。谢谢! - KANJICODER

4

尝试:

sourceSets {
    main {
        java {
            srcDirs = ['src/java']
        }
        resources {
            srcDirs = ['src/resources']
        }
    }
}

或者

sourceSets {
    main.java.srcDirs += 'src/java'
    main.resources.srcDirs += 'src/resources'
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接