基于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>

参数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 :initBUILD 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 :buildBUILD SUCCESSFUL

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

第一次运行build时,会检查.gradle目录是否存在guava、junit包。如果不存在,则下载并存到本地目录
下次运行build就使用缓存。build task编译class文件,运行test用例,生成测试报告

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

运行程序

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执行程序

源码

github地址
https://github.com/gradle-guides/building-java-applications/

参考资料
https://guides.gradle.org/building-java-applications

《了凡四训》详解之改过之法
https://v.youku.com/v_show/id_XMzY5NTcxMDIwOA
印光大师十念法(胡小林主讲第1集)
http://v.youku.com/v_show/id_XMzUwMzc4NzY4NA

转载于:https://www.cnblogs.com/yongqing/p/9595938.html

基于gradle构建Java应用程序相关推荐

  1. gradle java ide_使用Gradle构建Java项目

    使用Gradle构建Java项目 这个手册将通过一个简单的Java项目向大家介绍如何使用Gradle构建Java项目. 我们将要做什么? 我们将在这篇文档航中创建一个简单的Java项目,然后使用Gra ...

  2. 使用Gradle构建Java项目

    使用Gradle构建Java项目 本指南将引导您使用Gradle构建一个简单的Java项目. 你会建立什么 您将创建一个简单的应用程序,然后使用Gradle进行构建. 你需要什么 约15分钟 最喜欢的 ...

  3. 基于gradle构建spring cloud项目

    构建环境 idea:2021.1.2 gradle:4.10.3 项目介绍 gradle-spring-cloud 根项目,用于统一一些公共配置 gradle-eurakeserver 模块使用eur ...

  4. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  5. java yii_构建 Java 应用程序

    构建 Java 应用程序 目标 了解对象或对象集合如何变成应用程序 使用 Eclipse 创建驱动程序类 应用程序入口点 所有 Java 应用程序都需要一个入口点,让 Java 运行时知道将从这里开始 ...

  6. 《Java和Android开发实战详解》——2.2节构建Java应用程序

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.2节构建Java应用程序,作者 陈会安,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  7. Jenkins教程(2)使用Maven构建Java应用程序

    本教程将向你展示如何使用Jenkins编排并构建一个使用Maven管理的简单Java应用程序. 如果你是使用Maven的Java开发人员,并且对CI/CD概念不熟悉,或者你可能熟悉这些概念,但不知道如 ...

  8. gradle构建java实例_Gradle构建Java应用程序

    文章摘要 1.运行init,创建 2.执行创建 3.运行应用程序 一.运行init任务 要运行该init任务,请从命令提示符运行以下命令: $ gradle init --type name来自如下: ...

  9. java程序包r不存在_java - 从命令行使用Gradle构建时,“程序包R不存在”错误 - 堆栈内存溢出...

    我正在尝试从命令行使用Gradle构建一个Android项目,但是当我想要更改目录结构时发现了一个问题. 目前是这样的: . └── main ├── AndroidManifest.xml ├── ...

最新文章

  1. App性能分析数据监控
  2. 终于看见光的速度了:每秒一万亿帧的相机,拍摄到光的运行状态!
  3. 删除svn同步文件目录
  4. 600分钟搞定Python入门到实战
  5. (android之sqlite一)Sqlite介绍和sqlite工具介绍
  6. 国二计算机考试技巧,全国计算机等级考试上机考试应试技巧(二)
  7. OpenCASCADE:使用扩展数据交换 XDE之剪裁平面
  8. 企业微信_获取access_token
  9. SharePoint 2010 沙盒开发
  10. leetcode:Single Number【Python版】
  11. SQL增删改查语句笔记一
  12. Win10 LTSC 2021安装及相关bug解决
  13. php 用户控件,一个使用用户控件(包括组件)的演示-.NET教程,组件控件开发
  14. echarts实现数据可视化
  15. dpdk 源码分析 rte_ring
  16. 夺命十三枪枪谱完整版
  17. 网络编程——(1)网络编程入门
  18. python发送soap报文_使用Python将带附件的XML发送到SOAP ws
  19. 广告电商系统开发功能只订单处理
  20. 宏定义函数和普通函数

热门文章

  1. 关于自由人的信仰:忠于自己的理想,勇于面对出现在自己人生道路上的任何东西...
  2. 【风力发电机组】基于simulink风速模型仿真
  3. 选址问题模型验证01: The cycle hub location problem
  4. mac电脑通过python使用http.server
  5. jdk安装及环境配置
  6. 遥感影像处理书籍推荐
  7. 黑马程序员的就业班入学考试整理
  8. 1、SPSS 25的安装
  9. QT基础入门【调试篇】QT程序如何打包发布生成可执行exe文件(win下的可执行程序)
  10. 离散数学复习资料和试题