配置项目结构

最后更新于:2022-04-01 02:24:42

# 配置项目结构 当默认的项目结构不适用时,就可能需要去配置它。根据 Gradle 文档描述,可以通过以下代码重新配置 Java 项目的 sourceSets: ~~~ sourceSets { main { java { srcDir 'src/java' } resources { srcDir 'src/resources' } } } ~~~ > **注意:****srcDir** 将会被添加到已存在的源文件目录中(这个在Gradle 文档中没有提到,但是实际上确实是这样执行了) 要替换默认的源文件目录,你需要使用一个数组路径的 **srcDirs** 来替代。下面是使用调用对象的另外一种不同的方法: ~~~ sourceSets { main.java.srcDirs = ['src/java'] main.resources.srcDirs = ['src/resources'] } ~~~ 想了解更多的信息,可以查看 Gradle 文档中 [Java 插件](http://gradle.org/docs/current/userguide/java_plugin.html) 部分. Android 插件使用了类似的语法,因为使用了它自己的 sourceSet,这些配置会被添加到 **android** 对象中。 下面这个例子,使用了旧工程结构的 main 代码,并把 **androidTest** 的 sourceSet 映射到 tests 目录中。 ~~~ android { sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } androidTest.setRoot('tests') } } ~~~ > 注意:因为旧的结构把所有的源文件(java, aidl, renderscript, and java resources)放在同一个目录中,所以我们需要重新映射所有的 sourceSet 新组件到同一个 **src** 目录下。 > 注意:**setRoot()** 会移动所有的 sourceSet(包括它的子目录)到新的目录。例子中把 **src/androidTest/*** 移动到 **tests/*** Android 特有的 sourceSets 在 Java sourceSets 中不起作用. 上述的就是项目迁移的简单示例.
';