Gradle笔记
Hello Gradle Java
我们从一个简单的Hello Gradle Java项目开始,之所以起这个名字,是因为Gradle不仅仅可以用来构建Java项目,也可以用来构建基于其他语言的项目。而这里涉及的是Java项目。
项目骨架
手动生成项目骨架
一个典型Gradle项目的结构如下:
hello-gradle-java
build.gradle
src
main
java
test
java
在java
目录下面就是我们的包目录。
自动生成项目骨架
Gradle也提供了一个命令来自动生成Java项目骨架。
$ cd hello-gradle-java
$ gradle init --type java-library
生成的项目结构如下:
hello-gradle-java
build.gradle
gradle
wrapper
gradle-wrapper.jar
gradle-wrapper.properties
gradlew
gradlew.bat
settings.gradle
src
main
java
Library.java
test
java
LibraryTest.java
除了基本的骨架,自动生成的项目里还嵌入了一个gradle程序,这样,当把项目拷贝给别人的时候,别人可以不安装gradle,就可以使用gradlew(注意后面多了一个w)来构建程序。其中,gradlew和gradlew.bat分别是Linux和Windows的脚本。如果系统已经安装了gradle,可以将gradle
文件夹以及gradlew
和gradlew.bat
脚本删掉。
settings.gradle
在当前项目有多个子项目时十分有用,而如果只有一个项目需要构建,则可以删除这个文件。
gradle还帮我们生成了Library.java
和LibraryTest.java
文件,而一般情况下,Java文件都是组织在包结构下面的,所以这两个文件实际上没有什么用,可以删除。
在自动生成的build.gradle
文件里,还有大量说明信息,十分繁杂,不喜欢可以此文件清空。
到这里,自动生成的项目已经和手动生成的项目结构一模一样了。
用gradle构建Java项目
添加Java代码
我们首先在com.company.gradle包里添加一个包含main函数HelloGradleJava.java文件。
HelloGradleJava.java
package com.company.gradle;
public class HelloGradleJava {
public static void main(String[] args){
System.out.println("Hello, Gradle Java!");
}
}
所以现在的项目结构是
hello-gradle-java
build.gradle
src
main
java
com
company
gradle
HelloGradleJava.java
test
java
编辑build.gradle文件
build.gradle
apply plugin: 'java'
我们暂时只添加这一行,这个plugin引入了和Java相关的一些task。让我们尝试构建一下这个项目
$ gradle build
很神奇,构建成功了
这时,项目根目录下面多了build文件夹,而在build/libs
目录下面,可以找到生成的hello-gradle-java.jar
文件,让我们尝试使用java -jar
命令来运行它
$ java -jar build/libs/hello-gradle-java.jar
会提示no main manifest attribute
我们知道,这是没有指定manifest文件。
让程序跑起来
Application插件
编辑build.gradle
apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'com.company.gradle.HelloGradleJava'
这时候,gradle run
命令可以用来运行程序,但不会生成可直接运行的文件
$ gradle run
gradle installDist
会在build/install/
目录下面生成hello-gradle-java
,在bin
目录下面会发现可运行的脚本。
$ ./hello-gradle-java