Java并没有知道如何标准化项目结构,如何放置源文件、配置文件和类库文件是属于自己的事情。
Gradle通过引入预定义的项目布局为类似Java的项目提供基于约定的构建方法。
如果对于遗留应用,已经定义了目录结构,Gradle可以根据需要作出相应调整。
构建Java项目
Gradle的java插件,将为项目建立标准的项目布局,并确保有意义、有顺序的执行任务。
在build.gradle中使用java插件
apply plugin: 'java'
默认,java插件会到src/main/java
目录查找源代码。
java插件提供build任务,用于编译源代码,运行测试,组装JAR文件。
gradle build
在构建完成之后,在项目根目录可以看到build目录,里面包含构建运行的所有输出,包括classes文件、测试报告、JAR或临时文件。
运行Java应用
java -cp build/classes/main com.manning.gia.todo.ToDoApp
修改项目和插件属性
为了能够从JAR文件启动应用,清单文件MANIFEST.MF需要包含信息头Main-Class
apply plugin: 'java'
version = 0.1
sourceCompatibility = 1.6
sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
buildDir = 'out'
jar {
manifest {
attributes 'Main-Class': 'com.manning.gia.todo.ToDoApp'
}
}
将源代码位置修改为src
,输出目录为out
配置和使用外部依赖
以ToDo项目为例,在读取外部字符输入时,可能需要依赖Apache Commons Lang库。
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
}
Gradle会自动检测到新的依赖添加到项目中。如果依赖没有被成功解析,就会在需要使用该依赖的任务启动时下载它。
由于国内网络的问题,可以使用国内的maven源
repositories {
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}