项目自动化建构工具gradle 入门1——输出helloWorld
先来一个简单的例子,4个步骤:
1、进入D:\work\gradle\java 目录 ,您电脑没这目录? 那辛苦自己一级一级建立起来吧
新建文件build.gradle,文件内容是:
apply plugin: 'java' // 引入java插件,
jar { //当然若是我们将此jar包提交给别人使用而不是运行,则当删除或者注释掉此 jar 部分
manifest { //配置 Manifest文档属性
attributes 'Main-Class': 'lion.Hello' //指定程序入口
}
}
2、进入目录:D:\work\gradle\java\src\main\java\lion ,您电脑没这目录? 那辛苦自己一级一级建立起来吧
新建文档 Hello.java ,键入内容:
package lion;
public class Hello{
public static void main(String [] args){
System.out.println("hello,liyong,welcome to gradle");
}
}
3、返回目录:D:\work\gradle\java,
打开cmd进入该目录,键入: gradle assemble

4、打开目录 D:\work\gradle\java\build\libs
打开cmd进入该目录,键入:java –jar java.jar
此时看到 console 输出了 hello,liyong,welcome to gradle

整个例子很简单,如果你只需要简单实用java se 例子。到此您可以撤退了。
下面开始讲讲整个过程中用到的一些东西。
步骤1:
build.gradle 是干什么的:他是gradle 的构建脚本,用来告诉gradle 要干啥事。
build.gradle 里面的代码是啥意思:
// 双斜杠 是注释
第一行:告诉gradle ,这是一个java 应用。当然背后干活的gradle的插件,因为gradle把所有具体的业务工作都让插件做了,所以我们这里引入一个能做java相关工作的插件java。当然gradle还有很多其他的插件,后续后介绍,当然您也可以直接看https://docs.gradle.org/current/userguide/plugins.html#sec:using_plugins 页面。
第二行到最后:告诉gradle 我生成的jar包,需要制定一些的属性。比如从哪个类启动。当然你可以把这部分删掉,再执行步骤3,4看看,是不是告诉你这样的

步骤2:D:\work\gradle\java 是根目录。所有的目录都是基于此目录;
在这个目录下,默认代码目录结构:
- src/main/java目录包含了项目的源代码。
- src/main/resources目录包含了项目的资源(如属性文件)。
- src/test/java目录包含了测试类。
- src/test/resources目录包含了测试资源。
举例而言:
D:\work\gradle\java\src\main\java 目录下放所有项目的java源代码。所以步骤2中 java文件的包路径是 log。
D:\work\gradle\java\src\main\resources 所有配置文件则应该都放到该文件夹里。
步骤3: gradle assembly 是将java工程打成jar包,必须在一个含有build.gradle 的目录 才能执行此命令。
gradle的其他常用的命令就不罗列了。不会就直接敲 gradle,看看怎么用。最直接就是敲 gradle tasks 看看能用哪些指令。
生成文件的目录结构也很简单:生成的文件都在根目录(D:\work\gradle\java)下的build文件夹中。
libs 下生成的产品,命名呢是由根目录名决定的,所以这里就是java.jar,tmp临时文件
步骤4 :这个怎么跑程序就不属于gradle范围了,略过。如果不会直接百度。
项目自动化建构工具gradle 入门1——输出helloWorld的更多相关文章
- 项目自动化建构工具gradle 入门2——log4j输出helloWorld
上一章节呢,有一个能跑的程序了.但是对做工程的人来说,用日志输出感觉比用System.out要有档次一点.比如使用log4j.直接上例子: 1进入D:\work\gradle\log目录 ,您电脑没 ...
- 项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld
在java应用中,其实做的最多的还是java web应用.所以现在我们做的就是用gradle构建一个简单的web项目,简单点,直接上代码吧. 1.进入目录D:\work\gradle\web,新建文件 ...
- 项目自动化建构工具gradle 入门3——生一个exe的helloWorld
前两次呢,我们能够用一个外部的jar 来实现输出helloWorld.但问题是我每次都要用java -jar 来执行,这样我们自己玩还可以,让用户玩就不好了.所以我们生成一个exe给他们吧.这次我们仍 ...
- 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程
之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...
- 项目自动化建构工具gradle 入门0——环境 & 废话
gradle 是一个项目自动化构建工具.同类的产品还有ant ,maven等等.相比之下我更喜欢gradle,它语法简洁.兼容maven.ide集成很好. 学习使用gradle最快的方式是看文档,而且 ...
- 前端项目自动化构建工具——Webpack入门教程
参考资料:https://www.webpackjs.com/(中文文档) https://www.webpackjs.com/(官方文档) 首先有必要说明一下,本文侧重讲解webpack基本配置 ...
- 基于 Groovy 的自动化构建工具 Gradle 入门(转)
本人工作之初没有使用自动化构建,后来敏捷了,开始使用 Ant - 完全面向过程的定义步骤,不进行依赖管理.再发展到 Maven,面向对象的方式管理工程,有了依赖的管理,JAR 包统一从中央仓库获得,保 ...
- 自动化构建工具gradle安装教程(使用sdkman安装)
gradle是什么?(wiki解释) Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具.它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的 ...
- gulp前端自动化构建工具新手入门篇
很久没有更新博文了. 经过了一次年前吐血的赶项目,终于在年后回血了.趁着有空,新学到了一个前端自动化构建工具-gulp. 现在我们通过这3个问题来学习一下: 1.什么是gulp? 2.为什么要用gul ...
随机推荐
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- 重温Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...
- C语言 · 整数平均值
编写函数,求包含n个元素的整数数组中元素的平均值.要求在函数内部使用指针操纵数组元素,其中n个整数从键盘输入,输出为其平均值. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以 ...
- Gradle配置APK自动签名完整流程
转载请注明出处:http://www.cnblogs.com/LT5505/p/6256683.html 一.生成签名 1.命令行生成签名,输入命令keytool -genkey -v -keysto ...
- 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入
说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析 ...
- Java 为值传递而不是引用传递
——reference Java is Pass by Value and Not Pass by Reference 其实这个问题是一个非常初级的问题,相关的概念初学者早已掌握,但是时间长了还是容易 ...
- javascript arguments(转)
什么是arguments arguments 是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的.所有主要的js函数库都利用了arguments对象.所以agru ...
- 深入理解css3中nth-child和 nth-of-type的区别
在css3中有两个新的选择器可以选择父元素下对应的子元素,一个是:nth-child 另一个是:nth-of-type. 但是它们到底有什么区别呢? 其实区别很简单::nth-of-type为什么要叫 ...
- phpexcel读取输出操作
//读取 <?php header("Content-Type:text/html;charset=utf-8"); include 'Classes/PHPExcel.ph ...