Gradle是一个项目自动化构建工具,基于Groovy实现。Android Studio中项目的构建就是用的Gradle工具。
1. 下载并配置Gradle
Gradle配置安装见:https://gradle.org/install/
2. 简单示例
使用Gradle首先要编写项目的build.gradle配置文件。下面的例子是我在接触sphinx开源语音识别工具时,所写的一个简单代码,其中项目的目录结构如下:
- src/main/java目录存放源代码
- src/main/resources目录存放项目的资源文件
- build/classes目录存放编译生成的class文件
- build/libs目录存放编译生成的jar包
如下是项目对应的build.gradle文件:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'
mainClassName = 'TranscriberDemo'
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
dependencies {
compile group: 'edu.cmu.sphinx', name: 'sphinx4-core', version:'5prealpha-SNAPSHOT'
compile group: 'edu.cmu.sphinx', name: 'sphinx4-data', version:'5prealpha-SNAPSHOT'
}
jar {
manifest {
attributes 'Main-Class': 'TranscriberDemo'
}
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
其中,
repositories 标签告诉Gradle从哪获取项目所依赖的jar包;
dependencies 标签定义项目编译所需要的jar包;
jar标签定义编译项目生成的jar包的目录结构,可以配置jar包中manifest文件的内容,如jar文件的主类。
注意
Gradle默认构建出来的包不包含其它关联的jar包,因此,直接build出来的jar包会出现不能正常运行的情况。通过修改build.gradle的jar标签属性,可以使构建的jar包包含其它相关联的第三方jar包。
jar {
manifest {
attributes 'Main-Class': 'TranscriberDemo'
}
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } //构建出的jar包包含相关联的第三方jar包
}