在使用gradle进行多项目构建时,有“平面布局”和“分层布局”两种目录结构可以选择。
gradle相关配置文件*.gradle在与子项目模块(core,module…)平级的文件夹(config)中。
|_root
|_core
|_module
|_h5
|_service
|_dao
|_....
|_config
|_build.gradle
|_settings.gradle
settings.gradle中使用includeFlat来指定子项目模块。
includeFlat 'core','module','h5','serive','dao'
gradle相关配置文件*.gradle在root目录下,与子项目(core,module…)平级。
|_root
|_core
|_module
|_h5
|_service
|_dao
|_....
|_build.gradle
|_settings.gradle
settings.gradle中使用include来指定子项目模块。
include 'core','module','h5','service','dao'
以下以“分层布局”结构来继续操作。
文件名是settings.gradle,不是setting.gradle。不要省略’s’.
include (':ikt-core')
project(':ikt-core').projectDir = new File(settingsDir,'core')
include (':ikt-module')
project(':ikt-module').projectDir = new File(settingsDir,'module')
.....
这里将core,module文件夹做为ikt-core,ikt-module项目,如果文件夹名与项目名相同,可写为
include 'core','module'
这里使用了templates插件,会生成项目默认的结构。buildscript语句块是设置templates插件的获取位置。
buildscript{
repositories{
maven{
url 'http://dl.bintray.com/cjstehno/public'
}
}
dependencies{
classpath 'gradle-templates:gradle-templates:1.5'
}
}
allprojects{
group = 'cn.ikantalk'
version = '0.1'
apply plugin: 'templates'
}
subprojects{
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.8
}
.....
运行gradle命令列出全部tasks。
gradle tasks
在列出的Task中,将会使用createJavaProject和createWebappProject这两个task。
在全部项目中,core,module等项目,只是普通的java项目,所以使用createJavaProject生成目录结构。
运行gradle命令
gradle createJavaProject
按系统提示输入项目名称(Project Name),此处输入:core,并回车。
继续按系统提示输入上级目录(project parent directory),group,version等,这里使用默认值,直接回车即可。
这样,项目根目录下就生成了core目录。
在core目录下可以看到生成的相应文件,在src文件夹下已生成相应的项目目录结构。
|_core
|_src
|_main
|_java
|_resources
|_test
|_java
|_resources
|_build.gradle
|_gradle.properties
|_LICENSE.txt
同理,在根目录下生成module,service,dao等目录。
h5是一个web项目,使用createWepappProject生成目录结构。
运行gradle命令
gradle createWepappProject
系统提示生成javaProject的提示类似。
因为是web项目,所以会多一个是否使用jetty的选项:use jetty plugin的提示?可根据需要选择y|n.
在生成h5目录后,在h5目录下可看到相应的目录结构
|_h5
|_src
|_main
|_java
|_resources
|_webapp
|_WEB-INF
|_web.xml
|_test
|_java
|_resources
|_build.gradle
|_gradle.properties
|_LICENSE.txt
注意createJavaProject与createWebappPorject生成的目录结构的不同。
进入core目录,运行gradle命令。
gradle eclipse
将会在core目录下生成eclipse需要的.settings,.classpath和.project文件,core项目将会被做为一个eclipse项目导入到eclipse中。
在eclipse中选择File->Import->Existing Projects into Workspace->Import Projects,浏览core项目目录,将项目导入到eclipse中。
PS:在导入时选择或新建一个working sets,方便项目归类。