当默认的项目结构不适用的时候,你可能需要去配置它。根据Gradle文档,重新为Java项目配置_sourceSets_可以使用以下方法:
sourceSets { main { java { srcDir 'src/java' } resources { srcDir 'src/resources' } } }
注意:srcDir将会被添加到指定的已存在的源文件夹中(这在Gradle文档中没有提到,但是实际上确实会这样执行)。
srcDir
替换默认的源代码文件夹,你可能想要使用能够传入一个路径数组的srcDirs来替换单一的srcDir。以下是使用调用对象的另一种不同方法:
srcDirs
sourceSets { main.java.srcDirs = ['src/java'] main.resources.srcDirs = ['src/resources'] }
想要获取更多信息,可以参考Gradle文档中关于Java Pluign的部分。
Android Plugin使用的是类似的语法。但是由于它使用的是自己的sourceSets,这些配置将会被添加在android对象中。
android
以下是一个示例,它使用了旧项目结构中的main源码,并且将androidTest _sourceSet_组件重新映射到_tests_文件夹。
androidTest
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,renderscripthe和java资源文件)都放在同一个目录里面,所以我们需要将这些_sourceSet_组件重新映射到src目录下。
src
注意:setRoot()方法将移动整个组件(包括它的子文件夹)到一个新的文件夹。示例中将会移动src/androidTest/*到tests/*下。 以上这些是Android特有的,如果配置在Java的_sourceSets_里面将不会有作用。
setRoot()
src/androidTest/*
tests/*
以上也是将旧构建系统项目迁移到新构建系统需要做的迁移工作。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8