Gradle nexus 解决开发机器不连网无法下载gradle插件问题
在用gradle时常规配置如下(D:\gradle-4.9\init.d\init.gradle文件,没有这个文件时自建):
ext {
nexus = 'http://192.168.127.128:8081/repository/maven-public/'
username = 'admin'
password = 'admin123'
}
allprojects{
repositories {
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/') || !url.startsWith(nexus)) {
project.logger.lifecycle "Repository ${repo.url} replaced by ${nexus}."
remove repo
}
}
}
maven {
url nexus
}
}
}
在这种配置下,仅仅是项目中要用到的构件是从配置的nexus下载的。但是gradle自身的插件依然要从https://plugins.gradle.org/m2/下载。有时开发者机器是无法连接到互联网的,只有nexus机器能连接互联网,并不能访问这个https://plugins.gradle.org/m2/地址,也就无法下载gradle自身依赖的插件,就会报错。所以我们希望开发者的机器下载gradle插件时,也能从nexus下载。此时应在init.gradle中添加如下内容:
ext {
nexus = 'http://192.168.127.128:8081/repository/maven-public/'
username = 'admin'
password = 'admin123'
}
allprojects{
repositories {
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/') || !url.startsWith(nexus)) {
project.logger.lifecycle "Repository ${repo.url} replaced by ${nexus}."
remove repo
}
}
}
maven {
url nexus
}
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
resolutionStrategy {
}
repositories {
maven {
url nexus
}
}
}
}
gradle文件解读:
setting.gradle
1、pluginManagement(非必需)
作用:插件库管理
Tips:放在配置文件最前端
pluginManagement {
repositories {
//这个就是默认的插件库,一般可不配置,除非有更好更快的插件库
gradlePluginPortal()
}
}
2、settingsEvaluated(非必需)
作用:settings.gradle初始化完成的回调函数,用于做些初始化工作
gradle.settingsEvaluated {
println "settings初始化完成"
}
3、projectsLoaded(非必需)
作用:所有项目载入完成回调函数
gradle.projectsLoaded {
Gradle gradle ->
println "子项目初始化完成"+gradle
}
4、自定义初始化方法(非必需)
//创建自定义方法
def customInit(){
println"start init"
//做自己想要做的初始化
println"end init"
}
//settings.gradle加载的时候,会执行这个方法
customInit()
5、rootProject.name(必需)
作用配置项目名称
rootProject.name = 'test-core'
6、include(重要)
作用:配置多个项目
include ':app',':core'
注意:
gradle学习方法就是,多看gradle文档,多思考,适当学groovy。本文参考的文档是:https://docs.gradle.org/current/userguide/plugins.html#sec:script_plugins
Gradle nexus 解决开发机器不连网无法下载gradle插件问题的更多相关文章
- Android 开发必备知识:我和 Gradle 有个约会
腾讯Bugly特约作者:霍丙乾 0.讲个故事 0.1 Ant,我还真以为你是只蚂蚁 真正开始近距离接触编程其实是在2012年,年底的时候带我的大哥说,咱们这个 app 发布的时候手动构建耗时太久,研究 ...
- 开发机器上利用vs2013调试远程IIS上的c#程序
当远程IIS上的C#程序出现问题,怎么排错,一般我们通过看日志排查错误的方法,这种方法在程序异常日志都打印出来的情况下是可以解决的,但如果程序日志不详细,或者从日志看不出有用的内容的时候怎么排错? 本 ...
- Android 开发中,as或者idea对gradle的使用
原文:Android 开发中,as或者idea对gradle的使用 本文属于转载收藏,侵删,出处:私人博客 ---------------------------------------------- ...
- gradle多模块开发
参考文档:gradle的官方userguide.pdf文档的chapter 55和chapter 56.gradle的多模块或项目开发一定不会比maven差,在我看来!大的项目分成多个模块来开发是常事 ...
- nodejs 代理 解决开发环境跨域问题
前后端分离项目中,会遇到跨域问题.解决方法无非就是jsonp cors等. 本次项目前端不搭node服务,线上用nginx搭站点,nginx转发ajax请求server. 本地开发环境的跨域问题用no ...
- Ionic打包过程下载Gradle失败的解决方法
安卓应用现在很多都是基于gradle进行大包,ionic默认的打包命令 cordova build --release android 就是使用gradle进行打包,但同时ionic也支持in ...
- gradle多模块开发(转)
参考文档:gradle的官方userguide.pdf文档的chapter 55和chapter 56.gradle的多模块或项目开发一定不会比maven差,在我看来!大的项目分成多个模块来开发是常事 ...
- Jenkins+Gradle实现android开发持续集成、打包
Jenkins简介 Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在的错误, ...
- Java开发机器上的配置及zookeeper配置
Java开发机器上的配置及zookeeper配置 /etc/profile 文件的后面加入下面的内容: # jdk, zookeeper, kafka, ant, maven export APACH ...
随机推荐
- MySQL PROFILE 跟踪语句各阶段性能开销
PROFILE 可以跟踪查询语句各个阶段 Time,IO,CPU,MEMORY 等资源使用情况,比较详细.所以系统一般不会记录太多.启用是全局的,所以每个连接都保持语句的资源使用情况. 查看 PRO ...
- java环境下载
https://repo.huaweicloud.com/java/jdk/8u201-b09/
- JS模块化工具require.js教程(二):基本知识
前一篇:JS模块化工具我们以非常简单的方式引入了requirejs,这一篇将讲述一下requirejs中的一些基本知识,包括API使用方式等 基本API require会定义三个变量:define,r ...
- Django积木块七——视频
视频 # 在网上搜索video.js然后下载相关的js和css文件,看文档正确使用视频模块,添加视频外链 <div style="width: 1200px;height: 675px ...
- Node selenium-webdriver
Selenium-webdriver基本使用 准备 ① node.js 的安装和配置略 ② Selenium-webdriver npm install -save selenium-webdrive ...
- Java变成思想--多线程
Executor :线程池 CatchedThreadPool:创建与所需数量相同的线程,在回收旧线程是停止创建新县城. FixedThreadPool:创建一定数量的线程,所有任务公用这些线程. S ...
- 继承Thread类和实现Runnable接口
一.采用继承Thread类方法的特点: 优势:编写简单,如果需要访问当前的线程,只需要使用this,并可以在run()方法中调用其他线程的方法: 劣势:线程已经继承了Thread类,不能继承其他的父类 ...
- Mysql函数大全以及存储过程、函数、触发器、游标等等
https://www.cnblogs.com/slowlyslowly/p/8649430.html MySQL大全 存储过程: 基本语法 : create procedure sp_name([[ ...
- python 从基础到入门链接
机器学习篇: 先看的 简书 木子昭的机器学习三剑客 : https://www.jianshu.com/u/c5d047065c42 然后看完之后又发现一个很好的链接, nkwy2012博主提供了很多 ...
- Drools为什么没有规则流Flow Flie
哪个大神能告诉我,我安装的是Drools7.7.0,为什么没有网上说的flow file啊?怎么才能出来规则流呢? 上图是我本地的显示,下图是网上的图片.