lesson 3 Gradle和SpringBoot

lesson 3 Gradle和SpringBoot

现在很流行微服务,而作为java程序员,几乎都必须使用spring boot框架来开发,下面和大家一起学习,spring boot中的gradle使用,从实际行动来理解Gradle的构建过程。

熟悉spring boot的朋友一定知道,基础项目可以通过各种各样的工具来创建,我使用了IDEA中的spring initializr创建出一个项目,创建时注意选项,Type:Gradle Project不要选成Maven了,然后根据提示,一路点下去,项目就OK了。

友情提示:本文意在讲解gradle,所以只需要创建一个最基本的web项目即可。

.
├── build.gradle
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── demo
    │   │               └── gradle
    │   │                   └── DemoGradleApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── example
                    └── demo
                        └── gradle
                            └── DemoGradleApplicationTests.java

项目结构如上所示。

下面来看一下gradle文件里的内容。
settings.gradle依旧只有一行,表示项目名称
rootProject.name = 'demo-gradle'

build.gradle多了很多内容

buildscript {	//buildScript表示本脚本中,需要依赖仓库,插件,jar包等资源,类似于maven中pluginsManagement的作用
    ext {  		//ext则表示自定义的参数
        springBootVersion = '2.1.1.RELEASE'
    }
    repositories {	//仓库,不多说
        mavenCentral()
    }
    dependencies {	//依赖的具体内容
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
//以上内容,去除buildScript这一层,放到外面其实也是可以执行的

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}
//这里以上的内容不多说
dependencies {
	//依赖了spring boot中的两个资源,但都是都没有写版本号,这是因为上面io.spring.dependency-management这个插件的支持
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

这样,项目就可以基本的编译,打包,运行了。
gradle因为版本之间的差异,有一些写法可能不一样,比如apply plugin: 'java'这其实是老版本的写法,新的替代写法是plugins{ id 'java' version 'xx'}版本号和dependency中一样,是可以省略的。
在我看到的资料中,似乎apply plugin:‘xxx’这种写法好像不能在此处指定版本号,需要使用buildScript中引入,去控制,但是新写法可以按插件名和版本号直接引入项目,所以相比之下,脚本代码量会变小,也更以读一些。
下面是我对这个build.gradle的改变,项目仍可以正常使用。

//插件引入的方式更简单粗暴
plugins {
    id 'java'
    id 'idea'
    id "org.springframework.boot" version "2.1.1.RELEASE"
    id "io.spring.dependency-management" version "1.0.6.RELEASE"
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
targetCompatibility = '1.8'

//配置了aliyun的仓库,加速下载过程
repositories {
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
    maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
}
//还是那两个依赖
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

这么一看,我修改过得配置确实少了代码,也更容易看懂,相信通过这些大家应该对这个脚本的构建过程有了一些理解。
从IDE创建的gradle脚本,到自己修改它的一些写法使他更简单易读,麻烦小伙伴们也一起动起手吧,对技术而言,熟练也是一种不可多得的技术。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值