构建Java应用程序_基于gradle构建Java应用程序

基于gradle构建java应用程序示例

目录

你需要什么

大约8分钟

一个文本编辑器

命令行终端

jdk1.7或更高版本

最近版本的gradle

用户手册

gradle带有内置的init插件。它的文档地址

https://docs.gradle.org/current/userguide/build_init_plugin.html.

这插件有个init task,可以生成项目. init task使用内置的wrapper task生成wrapper脚本gradlew

运行init task语法

gradle init --type

参数name可选值

java-application

java-library

scala-library

groovy-library

basic

这里选择java-application类型

首先创建项目目录

$mkdir java-demo

$cd java-demo

初始化项目

在项目目录中运行init task,并使用参数java-application

$gradle init --type java-application

Starting a Gradle Daemon (subsequent builds will be faster)

> Task :wrapper

> Task :init

BUILD SUCCESSFUL

init task先运行wrapper task生成gradlew、gradlew.bat脚本,并生成如下项目结构

├── build.gradle

├── gradle #wrapper的文件

│ └── wrapper

│ ├── gradle-wrapper.jar

│ └── gradle-wrapper.properties

├── gradlew

├── gradlew.bat

├── settings.gradle

└── src

├── main

│ └── java #源文件

│ └── App.java

└── test #测试

└── java

└── AppTest.java

项目结构

settings.gradle有很多注释,有效行只有一行

settings.gradle

rootProject.name='java-demo'

配置root project的名称java-demo

生成的build.gradle同样有很多注释,下面是有效部分

build.gradle

apply plugin: 'java'

apply plugin: 'application'

repositories {

jcenter() #公有仓库

}

dependencies {

compile 'com.google.guava:guava:21.0' #google的guava包

testCompile 'junit:junit:4.12' #junit测试包

}

mainClassName = 'App' #main类

build文件中加了java和application两个插件。前者支持java项目,后者允许指定包含main方法的类,在run时执行

src/main/App.java

public class App {

public String getGreeting() {

return "Hello world.";

}

public static void main(String[] args) { #在运行application插件的run task时调用

System.out.println(new App().getGreeting());

}

}

src/test/java/AppTest.java

import org.junit.Test;

import static org.junit.Assert.*;

public class AppTest {

@Test public void testAppHasAGreeting() {

App classUnderTest = new App();

assertNotNull("app should have a greeting",

classUnderTest.getGreeting());

}

}

编译程序

编译项目使用build命令。可以使用常用的gradle命令,但是使用wrapper脚本更好

$./gradlew build

> Task :compileJava

> Task :processResources NO-SOURCE

> Task :classes

> Task :jar

> Task :startScripts

> Task :distTar

> Task :distZip

> Task :assemble

> Task :compileTestJava

> Task :processTestResources NO-SOURCE

> Task :testClasses

> Task :test

> Task :check

> Task :build

BUILD SUCCESSFUL

注意:第一次运行时会比较慢

第一次运行build时,会检查.gradle目录是否存在guava、junit包。如果不存在,则下载并存到本地目录

下次运行build就使用缓存。build task编译class文件,运行test用例,生成测试报告

查看html报告build/reports/tests/test/index.html.

样例

Test-Summary.png

运行程序

gradle构建使用了application插件,所以能在命令行运行程序。

看看有哪些task

$ ./gradlew tasks

:tasks

------------------------------------------------------------

All tasks runnable from root project

------------------------------------------------------------

Application tasks

-----------------

run - Runs this project as a JVM application

// ... many other tasks ...

run task会让gradle读取mainClassName属性指定的类,执行main方法

$./gradlew run

:compileJava UP-TO-DATE

:processResources NO-SOURCE

:classes UP-TO-DATE

:run

Hello world.

BUILD SUCCESSFUL

总结

通过上面可以学到

如何生成java应用程序

如何生成build文件、java文件

如何运行构建、查看测试报告

如何使用application插件的run task执行程序

源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值