gradle (v7.5) 使用
Posted qq_38599908
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gradle (v7.5) 使用相关的知识,希望对你有一定的参考价值。
gradle (v7.5) 使用
gradle 和 maven 都是项目构建工具,Gradle和Maven两种构建方式存在一些根本差异。 Gradle基于任务依赖关系图-其中任务就是工作,而Maven是基于固定的过程和线性模型。 使用Maven构建项目时,目标将附加到项目阶段,目标的作用类似于Gradle的任务,即“完成任务的事物”。 在性能方面,两者都允许多模块构建并行运行。 但是,Gradle允许增量构建,因为它检查是否更新了哪些任务。
gradle 和 maven 构建的项目结构如下图:
一、下载
官网 Gradle | Installation
下载 https://gradle.org/install/#manually
得到安装压缩包:
gradle-7.5.1-bin.zip 或类似的 gradle-7.5-bin.zip
二、配置
1. 解压到指定目录:
我这里放在 : D:\\gradle-7.5\\ ,展开后如下图
其中 repos 目录是自己另外创建的,用于存放下载的 gradle 资源包 (跟 maven 的资源包类似,但资源目录结构有差异)
2. 增加系统变量:GRADLE_HOME、GRADLE_USER_HOME
GRADLE_HOME 指的是 gradle 安装的解压目录
GRADLE_USER_HOME 指的是 gradle 将要下载使用的库目录。
目前, gradle 下载的依赖文件都存放在GRADLE_USER_HOME\\caches\\modules-2\\files-2.1
中
在 idea 中,目前需要对刚建立的每一个项目都需要单独重新指定。
3. 重启系统,查检安装效果
CMD 窗口 C\\Users…>
gradle -v
会同时自动在 C:\\Users…\\ 目录生成 .gradle
目录
4. 修改 maven 下载源
Gradle 自带的 maven 源地址是国外的,该 Maven 源在国内的访问速度是很慢的,除非使用了特别 的手段,一般情况下,我们建议使用国内第三方开放的 Maven 源或者企业内部自建 Maven 源。
认识 init.d 文件夹
我们可以在 gradle 的 init.d 目录下创建以 .gradle
结尾的文件,实现在 build 开始之前执行,所以可在这个文件配置一些想预先加载的操作。
在 init.d 文件夹创建 init.gradle 文件:
allprojects
repositories
mavenLocal () // maven 本地仓库
maven name "public" ; url 'https://maven.aliyun.com/repository/public/'
maven name "jcenter" ; url https://maven.aliyun.com/repository/jcenter'
maven name "google" ; url 'https://maven.aliyun.com/repository/google'
maven name "center" ; url 'https://maven.aliyun.com/repository/central'
maven name "gradle-plugin" ; url 'https://maven.aliyun.com/repository/gradle-plugin'
maven name "spring" ; url 'https://maven.aliyun.com/repository/spring'
mavenCentral () // maven 中央仓库
buildscript
repositories
mavenLocal ()
maven url 'https://maven.aliyun.com/repository/jcenter'
maven url 'https://maven.aliyun.com/repository/google'
maven url 'https://maven.aliyun.com/repository/central'
maven url 'https://maven.aliyun.com/repository/gradle-plugin'
jcenter ()
google ()
mavenCentral ()
拓展使用 init.gradle 文件
(1). 在命令行指定文件,例如: gradle --init-script path/init.gradle -q taskName ,可以指定多个 init 文件
(2). 把 init.gradle 放置到 USER_HOME/.gradle/ 目录下
(3). 把以 .gradle 结尾文件放置到 USER_HOME/.gradle/init.d/ 目录下
(4). 把以 .gradle 结尾文件放置到 GRADLE_HOME/init.d/ 目录下
以上4种方式存在2种以上,都会被执行
仓库地址说明
(1). mavenLocal () //本地仓库
(2). maven name “Your name” ; url ‘https://maven.aliyun.com/repository/public/’ // 指定第3方仓库,比如阿里云仓库
(3). mavenCentral () // Maven 中内仓库
三、使用
或 CMD 命令行建仓项目:在工作目录新建项目文件,并进入该目录,并在目录上方地址栏输入cmd, 执行:gradle init
命令
自动构建生成的目录文件:
无法使用gradle和V-Leaflet编译vaadin widgetset
我有一个使用vaadin插件和gradle配置的spring-vaadin项目。将V-Leaflet添加到我的项目第一次工作,但后来它破了,widgetset再也没有编译过了。编译失败报告它找不到杰克逊:
:vaadinPluginVersionCheck SKIPPED
:compileJava
:vaadinUpdateWidgetset
:processResources UP-TO-DATE
:classes
:vaadinClassPathJar UP-TO-DATE
:vaadinCompile
Errors in 'org/vaadin/addon/leaflet/shared/Point.java'
Line 37: JsonValue cannot be resolved to a type
Line 3: The import com.fasterxml cannot be resolved
Aborting compile due to errors in some input files
FAILED
以下是gradle依赖项部分中的相关部分:
compile 'com.fasterxml.jackson.core:jackson-core:2.9.7'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.7'
vaadinCompile 'org.peimari:g-leaflet:+' //For v-leaflet
compile 'org.vaadin.addon:v-leaflet:+' //For map fields
我已经尝试过使用vaadinCompile,编译和实现所有这些。
我解决了这个问题。
我不确切知道发生了什么,但我通过更新所有内容并在vaaddin编译中删除对传递依赖项的直接访问来解决它。
最终的gradle脚本是:
vaadinCompile 'org.vaadin.addon:v-leaflet:2.0.9'
compile 'org.vaadin.addon:v-leaflet:2.0.9'
只添加vaadinCompile部分解决了jar并从gradle运行的问题,但我还必须添加compile指令,以便eclipse可以在类路径上找到v-leaflet类。
以上是关于gradle (v7.5) 使用的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 Gradle 的 Eclipse 中的 Android 项目上启用 multidex
如何使用 kotlin dsl Gradle 将编译器参数传递给 java Compiler
将系统属性与 proguard 配置文件一起传递给 gradle proguardFile 属性
build.gradle 文件中的 compileKotlin 块抛出错误“找不到参数的方法 compileKotlin() [...]”