使用Gradle建立一个Java项目
下载Gradle: http://www.gradle.org/downloads.解压后,将gradle-1.8\bin加入系统环境的path中。运行测试:
:help
Welcome to Gradle 1.8.
To run a build, run gradle ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
BUILD SUCCESSFUL
Total time: 2.675 secs
首先创建一个gradle项目目录,然后在其目录下运行:
gradle tasks
出现结果:
:tasks
== All tasks runnable from root project
== Build Setup tasks
setupBuild - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]
== Help tasks
dependencies - Displays all dependencies declared in root project 'gs-gradle'.
dependencyInsight - Displays the insight into a specific dependency in root project 'gs-gradle'.
help - Displays a help message
projects - Displays the sub-projects of root project 'gs-gradle'.
properties - Displays the properties of root project 'gs-gradle'.
tasks - Displays the tasks runnable from root project 'gs-gradle'.
To see all tasks and more detail, run with --all.
BUILD SUCCESSFUL
Total time: 3.077 secs
虽然这样可以让任务可用,但是如果没有build.gradle也没有多大价值,当然随着你的项目插件任务增多,通过这个命令查看哪些任务可用。
建立一个build.gradle文件,第一行输入:
apply plugin: 'java'
这简单一行带来很大变化,再次运行gradle tasks,你就会看到很多任务,包括构建项目,创建JavaDOC和运行测试。
当然我们经常使用的还是下面这个命令,能够将你的项目打包成jar:
gradle build
到目前为止,我们的gradle目录下还没有Java源码,可以使用Eclipse创建一个Java项目,也可以手工创建一个Java项目,主要是建立一个放置源码的目录:src,然后创建一个src/main/java/hello,如果是windows操作系统,在命令行键入:
mkdir src\main\java\hello
如果是linux系统,键入:
mkdir -p src/main/java/hello
创建一个Java类src/main/java/hello/HelloWorld.java
package hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello");
}
}
然后,再回到src上级目录下输入gradle build,这时会发现编译成功信息,与src平行多出build目录,这个目录下有三个目录:
classes. 项目编译的 .class 文件
reports.构建的报告 包括测试报告.
libs. 生成的组装的库包 ( JAR and/or WAR 文件).
我们项目的jar包就在这个libs目录下了
依赖
点按进去以后,选择最新版本,再选择gradle,如下图:
得到'org.jdon:jdonframework:6.8'
我们就要在build.gradle文件中加入:
repositories { mavenCentral() }
dependencies {
compile "org.jdon:jdonframework:6.8"
}
这里的第一行表示的构建应该从Maven的中央存储库寻找解决它的依赖。gradle非常依赖于Maven构建工具许多惯例和设施,包括使用Maven中央作为库的依赖源。
dependencies中定义的是一个编译依赖,表示在编译时可用,如果构建WAR文件, 那么依赖包将被构建到war文件的 /WEB-INF/libs目录。
这样,在我们项目程序中,使用该库包的类以后,gradle就能够编译打包。
下面我们可以在HellowWorld代码中使用依赖来测试一下。
package hello;
import com.jdon.util.UtilValidate;
public class HelloWorld {
public static void main(String[] args) {
String s ="hello";
if (!UtilValidate.isEmpty(s))
System.out.println("hello");
}
}
再次运行gradle build,会发现正常编译构建了。
Web项目
使用web开发项目,只需要在\src\main下建立一个webapp即可,webapp下包含WEB-INF/web.xml,在build.gradle中加入
apply plugin: 'war'
再运行:
gradle war
打包成war文件,可以在build/libs目录下发现。
为了兼容中文注释等,需要加入UTF-8
tasks.withType(Compile) {
options.encoding = "UTF-8"
}