Gradle简介

Java的构建,经历了从Ant-->Maven->Gradle的过程,每一次的进步,都是为了解决之前的工具带来的问题:

  • Ant:Ant的功能虽然强大,但过于灵活,规范性不足,对目录结构及build.xml没有默认约定,且没有统一的项目依赖管理。
  • Maven:Maven解决了规范性的问题,也顺带解决了依赖项统一管理的问题,但由于规范性太强,灵活性不足,pom.xml采用Xml结构,项目一大,Xml就显得冗长。
  • Gradle:综合了Ant和Maven的优点,吸收了Ant中task的思想,然后把Maven的目录规范以及仓库思想也融合了进来,但允许用户自由的修改默认的规范(如,可随意修改源码目录),配置文件则采用Groovy语言来书写,Groovy是一门可编程语言,配置文件本身就可以视为一份源代码,并最终交由Gradle来处理执行。

目录结构

 
image.png

build.gradle: 这个文件是整个项目的构建脚本,脚本中内容是以Groovy语言来书写的。
范例:

buildscript {//运行首先执行这段代码
ext {//用于定义动态属性
//sringBootVersion 变量的定义
springBootVersion = '2.0.0.RELEASE'
}
repositories {
//mavenCentral() //官方的中央仓库
maven { //自定义中央仓库 下面是引用阿里的maven中央仓库
url 'http://maven.aliyun.com/nexus/content/groups/public'
}
}
dependencies {//依赖,下面是依赖springboot的一个插件
//${springBootVersion} 就是引用上面动态属性的变量
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
} //使用了的插件
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' group = 'com.youngman'
version = '0.0.1-SNAPSHOT'//项目的版本号,用户可以自定义
sourceCompatibility = 1.8//JDK的版本 repositories {
//mavenCentral()
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public'
}
} //依赖
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.security:spring-security-test')
}

gradlew: gradlew环境的脚本,我们执行就会完成环境一个搭建
build: gradlew 项目构建之后自动生成的一个目录
gradle: 里面有个子目录 wrapper项目成员没有安装gradle就会自动安装gradle,好处就是统一gradle的版本
src: 项目源码,包含程序源码和测试源码
.idea: 存放项目的配置信息。这个文件夹是自动生成,版本控制信息等,包括历史记录
settings.gradle: 针对module的全局配置,它的作用域所包含的所有module是通过settings.gradle来配置

Intellij IDEA gradle项目目录介绍的更多相关文章

  1. vue项目目录介绍

    Vue项目目录 初始化项目 vue init webpack []projectname] cd [projectname] npm install vue run dev 目录树 +---build ...

  2. Vue框架(三)——Vue项目搭建和项目目录介绍、组件、路由

    Vue项目环境搭建 1) 安装node,在官网下载好,然后在本地安装 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 换源安装cnpm >: npm ins ...

  3. SpringBoot学习笔记(二)——Springboot项目目录介绍

    官网生成SpringBoot项目 使用官网(https://start.spring.io/)生成一个Maven构建的的SpringBoot项目,下载下来的文件是这个样子的. 导入到IDEA中 为了查 ...

  4. Node.js项目目录介绍

    新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. public:用来存放静态文件(css,js,img). routes:路由控制 ...

  5. Django项目目录介绍

    一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model(模型):和数据库相关的,负 ...

  6. Vue音乐播放器(三):项目目录介绍,以及图标字体、公共样式等资源准备

    我们所有的开发都是基于修改src下面的目录 里面的文件去做开发即可 stylus的使用是需要下载stylus-loader的包的 渲染效果 配置修改eslintrc.js 配置了webpack.bas ...

  7. vue 外卖app (1) 项目目录介绍

    api 与后台交互文件夹 common 通用资源文件夹 components  非路由组件文件夹 filters   自定义过滤器模块文件夹 mock 模拟数据文件夹 pages  路由组件文件夹 r ...

  8. gradle项目与maven项目相互转化

    gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不是所有人都对gradle很熟悉,下面的方法可以把gradle转成maven项目,前提gradle项目目录结 ...

  9. gradle项目与maven项目相互转化(转)

    根据build.gradle和setting.gradle文件生成idea项目: gradle idea gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不 ...

随机推荐

  1. 一道简单的面试题,难倒各大 Java 高手!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 最近栈长在我们的<Java技术栈知识星球>上分享的一道 Java 实战面试题,很有意思,现在拿出来和大家分享下, ...

  2. Sql Server 表结构相关

    1.库表列信息 --取所有库 SELECT Name FROM Master..SysDatabases ORDER BY Name --查询所有表 select name from 库名..syso ...

  3. pip安装Scrapy因网络问题出错备选方案

    一 更改pypi默认源 执行 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 执行pip instal ...

  4. 如何在vue框架中兼容IE

    IE目前已经放弃了自己的独特化,正一步步迎入互联网的主流怀抱.但迫于有用户存在,还是要兼容到IE8,9, 以上. 下面聊一下如何在vue框架中兼容IE 1.首先在index.html <meta ...

  5. Android 5.1 预制输入法

    Android修改默认输入法为讯飞方法如下: 首先将讯飞输入法apk预制到系统app中: 在firefly-rk3288_android5.1_git_20180126/out/target/prod ...

  6. codeforces 1198E Rectangle Painting 2 最小点覆盖

    题目传送门 题意: 有一个$n∗n$的网格,网格中有一些矩形是黑的,其他点都是白的. 你每次可以花费$ min (h,w)$的代价把一个$h*w$的矩形区域变白.求把所有黑格变白的最小代价. 思路: ...

  7. java中继承条件下构造方法的执行过程

    继承条件下构造方法的调用规则如下: 情况1:如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法.在这种 ...

  8. 【TJOI2018】教科书般的亵渎

    题面 题目描述 小豆喜欢玩游戏,现在他在玩一个游戏遇到这样的场面,每个怪的血量为\(a_i\),且每个怪物血量均不相同,小豆手里有无限张"亵渎".亵渎的效果是对所有的怪造成11点伤 ...

  9. 让微信小程序每次请求的时候不改变session_id的方法

    让微信小程序每次请求的时候不改变session_id的方法 每次微信小程序请求的时候都会改变session id, 还好他的请求方法内可以设置header头 所以只需要在启动程序后第一次请求服务器获得 ...

  10. Python文件路径操作

    print(os.environ.get('HOME')) # 打印`HOME`这个环境变量 /Users/<> file_path = os.environ.get('HOME') + ...