百度
360搜索
搜狗搜索

gradle配置,gradle代理设置详细介绍

本文目录一览: 【Gradle深入浅出】——Gradle配置(一)

1.【Gradle深入浅出】——初识Gradle 2.【Gradle深入浅出】——Gradle基础概念 3.【Gradle深入浅出】——Android Gradle Plugin 基础概念 4.【Gradle深入浅出】——Gradle配置(一) 5.【Gradle深入浅出】——Gralde配置(二)
前面三篇博客讲解了Gradle的基础概念,看完前面三篇博客我们应该对于Gradle都有了一个基础的认知,知道了文件的作用,Gradle的基本构成,本篇博客开始就开始进入Gradle的学习,首先讲解的是Gradle的配置,Gradle配置应该是我们日常开发中必不可少的技能,平时的打包,编译等等都需要熟悉Gradle的配置。
我们知道Gradle都关于属性配置有两个文件, local.properties 和 gradle.properties ,这两个文件的实质都是生成Java的 Properties 对象,所以要属性这两个文件的作用,首先要属性下 Properties 类。 我们首先来看下这个类的基本上结构。
看完这个我们应该就有一个大体的认识了, Properties 本质就是一个HashTable,支持设置默认属性,其他的没啥区别,哪我们看下 Properties 如何读取文件呢
可以看到 Properites 给我们提供了三个加载文件的方式,所以这里我们也可以得出一个结论, 使用 Properties 不是必须使用 .properties 格式的文件。 哪可能有人要问了,为啥这里的配置都使用properties格式的文件呢? 我猜测可能是复用Spring Boot中的支持的配置文件,Spring Boot中支持三种格式的配置文件 YAML,XML,Properties ,具体的差异这里就不展开讲解了。 我们可以理解为 .properties 就是类似于json的一套配置文件格式,IDE对于这类文件有特殊的支持,比如注释等语法,做了统一的规范 Properties文件的格式规范
有了对于Properties类的理解,我们在来看local.properties文件,理解起来就方便类许多,前面几篇博客已经提到了 local.properties 是Studio自动生成的一个本地配置文件,并且不会提交到远端,是我们自己本地的配置文件,常见的配置如下:
既然是配置文件,那么如何在 local.properites 中定义全局变量,然后在build.gradle中读取呢?比如我们的maven上传需要用户的姓名密码,每个人的都不一样,所以可以放到local.propertiest文件中
和前面介绍的一样,我们只需要在local.properties中定义变量,然后在gradle中读取变量只需要生成Properties类来进行读取文件。
同样的这也是一个Properties类型的文件,但这个文件主要是配置和Gradle自身相关的配置内容的,接下来聊聊他的几个作用:
这里主要是配置本项目在使用Gradle进行编译时的配置,比如虚拟机堆栈配置(常见的编译速度优化就在这里配置)
所以看到上面的定义后,我们就可以理解常见的“编译速度优化”的配置的大概意思
除了刚才说的这个文件用于配置gradle属性,这个文件还可以用于配置系统属性和android属性 并且可以区分配置不同的项目的配置 1、单项目gradle使用代理:gradle/wrapper/gradle-wrapper.properties 2、全局gradle使用代理:userdir/.gradle/gradle.properties
其他的系统变量这里就不列举了,具体看我们遇到具体场景来设置
接着来看下在gradle.properties文件中如何定义变量,gradle.properties就是官方定义的用来定义变量的文件的地方,所以定义和获取就不需要像local.properties那么麻烦了。
获取变量,就不需要通过文件流读取文件流,gralde内部自身已经做了这个,我们可以直接引用变量即可。
setting.gradle前面的博客介绍了,是用于配置项目的组成和模块的,所以一半我们的setting.gradle文件都是这样的
前面有讲过setting.gradle的实质是生成一个Setting对象,我们按住ctrl点击include就进入了Setting.gradle类,其实就可以知道我们可以调用的api,这里还是介绍我们常用的几个方法吧。首先来看下最常用的 include 方法。
这里特意把注释也放了进来,不得不说老外对于注释真的写的非常详细,往往我们忽视了这么冗长的注释,但当发现问题,从搜索引擎上搜相关资料都时候就会发现,其实大部分就是对于注释都翻译。 所以这里我下面介绍都内容,就会发现和上面注释都大同小异。 首次看下这里的引入方式,一般都是 include ':app' ,这里的语法是这样的
在这里 : 表示的路径的分隔符,也就是 \ 的意思,所以这里都需要使用 : ,其次这里都路径是相当于根目录的路径。然后我们可以看到其实这个方法是可变参数,所以这里支持多个项目引入。
所以我们如果有一个这样的目录结构的项目
那么这时的setting.gradle就是这样
这时我们可能有个问题:我们如果引入的不是根目录下的项目怎么办?也就是引入其他路径下的项目作为我们的子module,因为这里一直是相对与根目录的路径
这样我们就可以引入不在这个项目中的Lib作为我们这个项目的Lib,组件化的工程经常就会这样使用。 最后我们看下还有一个小知识点,我们如果想改变这个Lib在Studio的显示的名称,该如何操作?
这个方法的作用就是我们这样的,可以改变Lib在IDE中的名称。
接着来看下在setting.gradle怎么定义全局变量呢?这时候就是利用gradle的拓展属性的特性了。
然后在build.gradle中使用变量的时候,就还是使用gradle.ext使用即可。
关于ext属性我们后面专门再讲下,我们前面也讲到了我们全局就只会有一个gradle对象,所以这里可以理解是一个全局的map对象,这样就好理解了很多。
至此,本篇博客对于 gradle.properties 、 local.properties 、 setting.gradle 都配置都有了一个较为详细都讲解,我们后面在使用过程中,对于这三个文件的配置都不会那么陌生,并且对于三个文件的差异都有了一个基本都认知,知道我们在定义本地变量,不同人都环境有差异都地方都应该在local.properties配置,大家共同的配置和变量定义可以放到gradle.properties这个专职用于存放配置的文件,最后就是专门用于配置我们项目的目录结构的setting.gradle,当然这个文件也可以用于配置一些变量,这时候我们就要把我单一职责的原则,也就是高内聚,低耦合那一套,按照文件职责进行划分,下一篇博客准备对build.gradle的配置进行讲解。

Gradle之全局配置

Gradle全局配置流程

3.在主项目根目录的build.gradle中申明一下(声明在 project/buile.gradle 下):

4在项目中( app/build.gradle )引用我们的路径配置(如图:)

gradle 配置 nexus repository

1.mac :

? ?1).解压文件进入bin/

? ?2). ? ./nexus start 可以直接运行,注意有个点

2.windows

? ?1).进入nexus目录,在bin/jsw 下找到nexus.exe

? ?2).nexus.exe / install安装成系统服务

? ?3).nexus.exe / start直接运行

? ?4).nexus.exe / stop停止

? ?5).nexus.exe / uninstall卸载

3.ubuntu

http://www.jianshu.com/p/9740778b154f

1).浏览器中http://127.0.0.1:8081/ 默认网址可以进入管理界面

2).内置账户 admin admin123

3)点击左上螺丝,进入 设置界面,默认内置了一些库

4).点击 create repository?

普及一下这几种类型的区别:

5).配置仓库

名称可以修改,其他的配置没有具体了解

6)点击create repository之后就创建成功了,会自动跳转到repository列表界面,点击条目的copy按钮,就可以获取仓库路径了

不详细说明? maven_push.gradle

apply plugin:'maven'

apply plugin:'signing'

configurations {

deployerJars

}

repositories {

mavenCentral()

}

// 判断版本是Release or Snapshots

def isRelease() {

return!VERSION.contains("SNAPSHOT");

}

// 获取仓库url

def getRepositoryUrl() {

returnisRelease() ? RELEASE_URL : SNAPSHOT_URL;

}

uploadArchives {

repositories {

mavenDeployer {

beforeDeployment {

MavenDeployment deployment -> signing.signPom(deployment)

}

pom.version = VERSION

pom.artifactId = ARTIFACT_ID

pom.groupId = GROUP_ID

repository(url: getRepositoryUrl()) {

authentication(userName: NAME,password: PASSWORD)// maven授权信息

}

}

}

}

// 进行数字签名

signing {

// 当 发布版本 & 存在"uploadArchives"任务时,才执行

required { isRelease() && gradle.taskGraph.hasTask("uploadArchives") }

sign configurations.archives

}

在build.gradle 中引用maven_push.gradle

gradle.properties中配置账号与仓库链接

最后在task中,点击uploadArchives上传

项目的gradle中配置内部maven库路径

gradle代理设置

Gradle 默认直连网络,即使 Mac 设置了全局代理也是一样。就算你给 Android Studio 设置了代理,它依旧会风轻云淡地直连那个你在中国一辈子也不可能连上的网站……

根据需要在下列所述文件中添加相应配置语句

1、单项目gradle使用代理:gradle/wrapper/gradle-wrapper.properties

2、全局gradle使用代理:userdir/.gradle/gradle.properties

#代理服务器IP/域名

systemProp.http.proxyHost=127.0.0.1

#代理服务器端口

systemProp.http.proxyPort=8080

#代理服务器需要验证时,填写用户名

systemProp.http.proxyUser=userid

#代理服务器需要验证时,填写密码

systemProp.http.proxyPassword=password

#不需要代理的域名/IP

systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

systemProp.https.proxyHost=127.0.0.1

systemProp.https.proxyPort=8080

systemProp.https.proxyUser=userid

systemProp.https.proxyPassword=password

systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost

然后重启部署,Gradle 就会老老实实地走代理部署了。

Linux下Nexus 3私服配置及gradle配置使用

参考战斗名族大神的文章
https://habr.com/ru/post/416665/

注:我这里用的是zsh,配置使用 .zshrc

Nexus安装

使用 ./nexus start 启动,如果看到如下界面,证明我们配置成功了

我们现在想增加我们自己的私有仓库,如下图操作就可以

点击 Create repository 选择 maven2 (hosted) 托管模式

到这里我们的私有maven库就配置完成了!!!

我们使用两种方式配置(1:maven方式 ,2:maven-publish方式)

首先我们创建一个测试项目,并创建一个libaray

阅读更多 >>>  linux下怎么配置大页内存

在我们项目的根目录的 build.gradle 中配置刚刚建立的仓库

然后在gradle.properties文件中配置我们的gradle(此处配置信息放在local.properties文件中更好,因为该文件是本地文件,不上传至gitlab上)

再次配置我们libraray下 build.gradle 文件

接下来 Sync Now 一下,如果没出错的话证明我们的配置是成功的,接下来我们按照下图点击上传即可

然后回到Nexus界面,如出现下图中的配置,证明我们上传成功了,如下图:

我们单独配置一个名称为 publisher.gradle 文件,如下:

在我们使用的地方引入就可以

我们使用命令上传或图形化上传
1:命令

2:图形化

参考:
https://blog.csdn.net/KingBoyWorld/article/details/78917855
https://www.jianshu.com/p/6954613c13ef

第九章:配置本地项目依赖

第一步,打开项目结构界面。依次点击左上角的File->Project Structure...

文件结构如图所示:

第二步,导入依赖的项目(作为当前项目的模块)。选择Modules(模块),点击项目目录上方的“+”:

点击"Import Module":

选择你要依赖的项目:

依次选择Import module from external model -> Gradle,点击“Finish”

点击“Finish”后,你将看到:

什么也没有?是不是没有导入进来?并不是。只是IDEA目前没有显示出来导入的模块而已。点击OK,然后点击左上角的File->Project Structure...重新进来,你就会看到模块已经被导入进来了。

点击左上角的File->Project Structure...再次进入文件结构界面,可以看到你导入的项目已经作为当前项目的模块:

目前为止,我们只是通知了IDEA我们打算导入一个本地项目作为当前项目的一部分。Gradle还不知道有这回事。因此,我们需要配置Gradle,让其知晓我们的意图。

第三步,配置settings.gradle。找到项目目录下的settings.gradle,双击打开它:

另起一行,填写 include 'XXX' 与 project(':XXX').projectDir = new File(settingsDir,'../XXX/') ,其中XXX是你刚才导入的项目模块的项目名字:

如果你导入的项目同时依赖了另一个项目,那么需要把另一个项目的名字也要写在这里。例如我这里当前项目依赖本地项目“JUI”,其本身依赖本地项目“JKit”。因此我要把JKit也一同配置上。

第四步,配置build.gradle。找到项目目录下的build.gradle(Android项目是app目录下的build.gradle):

在dependencies中添加implementation project(":XXX"):

最后,别忘记点击右上方的“大象图标”或者点击“Sync Now”构筑更新gradle:

这样,本地依赖就配置好了。

如何安装配置gradle及eclipse的结合

1,首先当然是到官网gradle.org下载最新的gradle版本了
2,下载完成后,放到任意的位置,我的是在D:/gradle-1.1,然后需要放到换进配置,步骤是右键“计算机”-“属性”,进入“高级配置”,选择“环境变量”,点击”新建“,配置”GRADLE_HOME“
3,选择“path”,进行修改,加入“;%GRADLE_HOME%\bin”,注意此处没有引号,记得前面要加分号,这样就配置好gradle的环境变量了
4,在命令窗口输入”gradle -version“,进行验证,出现以下提示则表示成功
5,接下来是构建一个java项目,可以随便建一个文件夹,如:D:\javapro1,按照gradle的规约新建相应的文件目录,类似于maven的一样
6,最主要的是在该目录下新建一个gradle文件,build.gradle,文件内容只要一句话即可:
apply plugin:'java'
7,在命令窗口中,进入项目对应文件夹,输入gradle build,即可完成构建,然后可以在项目文件夹中发现多了一些构建完的文件,这时就完成了一个最简单的项目构建

如何修改gradle配置

myeclipse配置gradle过程如下:
1、在线安装地址:百度搜gradle官网地址
2、选择Core / Eclipse Integration for Gradle -> Gradle IDE
这个是gradle 的核心了
下面直接点击下一步,即可完成安装。
3、使用myeclipse 创建一个gradle项目
File -> New -> Project -> Gradle -> Gradle Project -> Next
输入项目的名称,选择Sample project Java Quickstart,点击完成即可
4、添加一个jar包依赖
编辑文件build.gradle,找到dependencies,在里面添加一条jar的信息,例如:
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
//添加一个spring 依赖
compile 'org.springframework:spring-core:4.1.2.RELEASE'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
5、刷新项目,使得myeclipse自动下载jar包.
右击项目->Gradle->Refresh Dependencies
6、打包项目
右击项目->Run As -> Gradle Build... -> 在命令行里面输入build,点击运行即可

android studio怎么配置gradle

build.gradle //设置脚本的运行环境 buildscript { //支持java 依赖库管理(maven/ivy),用于项目的依赖。 repositories { mavenCentral() } //依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件 dependencies { classpath 'com.android...
我只能说给你这份资料看看了:
http://www.linuxidc.com/Linux/2015-02/113890p4.htm
①、根目录的build.gradle的内容所示如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc4'
}
}
allprojects {
repositories {
jcenter()
maven {
url 'http://mvnrepo.xxx.com/mvn/repository'
}
}
}
解释:classpath 'com.android.tools.build:gradle:1.0.0-rc4'就是Android特有的插件,maven仓库地址通过方法jCenter() 获取,这也是默认的maven仓库。当然也可以添加额外的maven仓库地址,例如以上文件中的
maven {
url 'http://mvnrepo.xxx.com/mvn/repository'
}
②、app目录下的build.gradle的内容展示如下:
//设置脚本的运行环境
buildscript {
//支持java 依赖库管理(maven/ivy),用于项目的依赖。
repositories {
mavenCentral()
}
//依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
//声明构建的项目类型,这里当然是android了
apply plugin: 'android'
//设置编译android项目的参数
android {
compileSdkVersion 17
buildToolsVersion "17"
defaultConfig {
minSdkVersion 8
targetSdkVersion 17
}
//Android默认配置
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
//测试所在的路径,这里假设是tests文件夹,没有可以不写这一行
instrumentTest.setRoot('tests')
}
//这个是解决lint报错的代码
lintOptions {
abortOnError false
}
/**
* 签名设置
*/
signingConfigs {
myConfigs {
storeFile file("签名文件地址")
keyAlias "..."
keyPassword "..."
storePassword "..."
}
}
/**
* 混淆设置
*/
buildTypes {
release {
signingConfig signingConfigs.myConfigs
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
/**
* 渠道打包(不同包名)
*/
productFlavors {
qqqq {
applicationId = '包名'
}
hhhhh {
applicationId='包名'
}
}
}
/**
* .so文件的导入
*/
task copyNativeLibs(type: Copy) {
from fileTree(dir: 'libs', include: 'armeabi/*.so') into 'build/lib'
}
tasks.withType(Compile) {
options.encoding = "UTF-8"
}
tasks.withType(Compile) {
compileTask -> compileTask.dependsOn copyNativeLibs
}
clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
pkgTask.jniFolders = [new File(buildDir, 'lib')]
}
//依赖库
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
包依赖使用aar时分为本地依赖和远程依赖,分别如下:
本地依赖:
gradle 作为构建工具,能够很方便的使用本地jar包,以下为使用的代码块:
dependencies {
//单文件依赖
compile files('libs/android-support-v4.jar')
//某个文件夹下面全部依赖
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
}
远程依赖:
gradle 同时支持maven,ivy,我们用maven 作为例子,以下为代码块:
repositories {
//从中央库里面获取依赖
mavenCentral()
//或者使用指定的本地maven 库
maven{
url "file://F:/githubrepo/releases"
}
//或者使用指定的远程maven库
maven{
url "远程库地址"
}
}
dependencies {
//应用格式: packageName:artifactId:version
compile 'com.google.android:support-v4:r13'}
android {
}
对于项目依赖 android library的话,就不是依赖一个jar,那么简单了,在这里需要使用gradle mulit project 机制。在过去,android library并没有一个很好的包管理方式,简单来说,在gradle出现以前,官方并没有一种用于管理android library 依赖包的方式,一般我们都是直接下载别人的android library project 源码进行集成,而对于第三方的android-maven-plugin 用的是apklib 格式。而现在,官方终于推出一种android
library的打包格式,扩展名为*.aar。前面提到,目前android gradle插件并不支持本地直接使用*.aar文件,对android library 进行打包直接在library项目下面使用gradle build 即可,然后,你就会在 build/libs 目录下看到两个*.aar文件,一个debug包用的,一个是release 下用的,看个人需求使用,这里我们用的是release 版本的 .aar 文件。
引用脚本跟前面讲的依赖库相似:
dependencies {
compile(name: 'pulltorefresh', ext: 'aar')
}
包依赖jar:
依赖多个jar时:
compile group: 'com.alibaba', module: 'fastjson', version: 'latest.integration'
我们其实可以简写成:
compile 'com.alibaba:fastjson:latest.integration'
而latest.integration可以替换成具体的版本号,这里是获取服务器上的最新版本。
如果要去除重复依赖可以这样:
compile 'com.alibaba.fastjson.latest.integration' {
exclude module: 'annotations', group: 'com.google.android'
}
3、命令执行脚本
在Android工程根目录下会自动生成一个shell脚本 - gradlew,执行之前记得加上x属性 - chomod +x gradlew
gradle脚本中包含了很多 task,可以通过task名来指定需要执行的task。
./gradlew build./gradlew assemble./gradlew assembleInnderDebug
4、总结说明
我估计现在大部分开发的项目普遍使用的是maven,但是不知道为什么,使用Gradle时经常会遇到一些无法获取远程依赖包的问题,最简单的解决办法就是把依赖包下载的本地。所以建议大家尽量使用本地依赖。如果介绍了这些你还不是太明白,那你可以自己在网上搜一些相关的知识学习学习,或者自己找些资料进行了解,最好的学习就是挑战自己而不是依赖别人。

阅读更多 >>>  gradle sync,Android studio Gradle project sync failed

网站数据信息

"gradle配置,gradle代理设置"浏览人数已经达到18次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:gradle配置,gradle代理设置的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!