要一直走下去

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

gradle的使用

 2000年:Ant

2004年:Maven

2012年:Gradle

Gradle使用Groovy语言来管理jar包,替换maven繁琐的xml配置

 

1、Gradle安装配置(windows版)

下载:https://gradle.org/releases/ 

版本要跟你的IDEA适配的版本一致,比如2019.2的IDEA视频的是Gradle5.2.1版本

 1.配置环境变量 GRADLE_HOME,对应Gradle的安装目录。

 

 

2.配置环境变量 GRADLE_USER_HOME,对应Gradle本地仓库或工作空间目录(自已创建的指定目录)。

 

 

3.在Path中添加Gradle

%GRADLE_HOME%\bin;

 

 运行“gradle -v” 查看是否安装成功

4、配置国内仓库

在gradle目录D:\ProgramDevs\gradle-5.2.1\init.d,添加一个文件 init.gradle ,添加以下内容

allprojects {
    repositories {
        maven { url 'file:///D:/ProgramDevs/gradleRepo'}
        mavenLocal()
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        mavenCentral()
    }

    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

maven { url ‘file:///D:/ProgramDevs/gradleRepo’} 配置的是Gradle本地仓库或工作目录的地址,对应GRADLE_USER_HOME

如果不配置,可以直接将这段代码直接放到build.gradle中:目的是指定配置阶段依赖的包的calsspath的下载地址:

 如果放在allprojects中,表示项目的依赖包的下载地址:

 

 

 

 

2、Gradle和idea集成

创建gradle项目

 

 

 

修改Gradle配置

 

3、Gradle本地仓库可以使用Maven的本地仓库

gradle配置文件说明:

可以把Gradle本地仓库配置为maven的本地仓库,这样,就不用去Gradle中央仓库下载了,就直接去maven本地仓库取

配置环境变量 GRADLE_USER_HOME

配置好后,再加上一个配置mavenLocal,这样就先从本地仓库找jar包,找不到再去中央仓库找

4、Gradle入门案例

先写一个java工程

构建完“xxx.jar”怎么执行呢?

`xxx.jar  com.wyz.Main`

5、Gradle构建java web工程并在tomcat下运行

如何把java工程变成web工程???加上webapp目录,并且配置中写上apply plugin:‘war’ 就行了

写web工程(略)

打包运行:

 

 

 

点击运行即可。

 ==================================================使用插件启动tomcat=============================================

 

 

 

 

 

 

 

 

 

 

 

6、Gradle构建多模块项目(重点)

先创建父工程:

 

 

 父工程的作用是管理子模块的,可以将父工程的src目录删除。

 父工程中创建子模块: dao

 

 保持默认,下一步

 

 

 

 同样的方法,再创建一个service模块

 

最后再创建一个web模块

 由于web模块现在是java项目,需要变成web项目:

    去web模块下加上webapp目录,并且配置中写上apply plugin:‘war’ 

 这样,父工程下创建了三个子模块

配置文件中也能看出来:

 

 

想让子模块使用依赖,坐标写在父工程的配置文件中,并且加上allprojects

(说明1:sourceCompatibility=1.8 表示JDK版本为1.8)

(说明2:如果只想所有的子模块通用,就不是放在allprojects了,而是放在subprojects里)

 

 

 

子模块配置中,跟父工程重复的配置可以删除。

 

service模块要使用dao模块的代码,需要在service下配置中加上dependencies

 

同理,web中也要加

 

 

 接下来就能写代码运行了。

 

 

7、Gradle构建脚本介绍:project和task

理解:

任何一个Gradle构建都由一个或多个project组成。比如:父项目下所有子模块,他们有相互依赖关系,构建父项目就是由构建多个子模块组成

每个project包括许多构建部分,可以是jar包,可以是war包,比如子模块可以是jar项目,可以是war项目。

 

 

我们在配置文件中看到的

 

8、build.gradle常用配置

 

dependencies:

 

9、如何解决依赖冲突

依赖冲突是如何产生的??

比如我项目中需要依赖A,而A依赖了B、C,B和C又分别依赖了D,但是B和C依赖的D是不同版本的,这样就产生依赖冲突的问题。

 

 Maven和Gradle默认是如何处理依赖冲突的??

 

 

 

 如果不想用Gradle的默认处理方式,有哪些其他选择???

 

 

 

 

 

 

 

10、Gradle项目的发布

发布的意义:发布指的是把自己的项目打包放到Maven仓库中,供其他人引用

(想一想:是否可以把被测的代码打包发布到仓库中,让测试脚本去引用,这样就可以无侵入的测试被测代码了?)

 

 

 

 

 

11、application插件

 

 

13、Plugin Management语法块

pluginManagement{}语法块是专门用于管理整个项目插件的,只能出现在settings.gradle文件或”初始化脚本“中,并且在settings.gradle文件中pluginManagement{}必须是文件中的第一个块。

 

 

 

 

默认情况下,plugins DSL语法会从Gradle plugin portal去解析插件,但许多插件开发者喜欢使用私有的Maven或Ivy仓库,为了指定使用的插件仓库,

Gradle提供了repositories{}语法块,放在pluginManagement语法块中使用,用于管理整个项目使用的插件仓库。

语法规则如下(以本地路径为例,如果使用网络资源就将路径替换成http url):

 插件版本管理
Gradle提供了plugins{}语法块,用于pluginManagement语法块中,用于统一指定整个仓库使用的某个插件的版本。

使用这种方式管理插件的版本有一些好处,例如在多projects构建中很有用,因为在多projects构建中统一每个子project依赖的插件版本很有必要;

另外,前面提过,DSL语法在build.gradle有严格的限制,但是在settings.gradle中语法却比较宽松,这允许它从gradle.properties文件中去获取版本。

在根目录下的settings.gradle指定了插件的版本后,在build.gradle中只需要指定插件的id即可,插件版本配置在gradle.properties中。

 

 

posted on 2022-04-17 13:06  要一直走下去  阅读(353)  评论(0)    收藏  举报