zoukankan      html  css  js  c++  java
  • Gradle nexus 解决开发机器不连网无法下载gradle插件问题

    在用gradle时常规配置如下(D:gradle-4.9init.dinit.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

  • 相关阅读:
    结队-贪吃蛇游戏-项目进度
    团队-象棋游戏-开发环境搭建过程
    团队-中国象棋游戏-设计文档
    结对-贪吃蛇游戏-开发环境搭建过程
    结对-结对编项目贪吃蛇-设计文档
    课后作业-阅读任务-阅读提问-1
    《20170911-构建之法:现代软件工程-阅读笔记》
    团队-中国象棋-成员简介及分工
    团队-团队编程项目中国象棋-需求分析
    结队-结队编程项目贪吃蛇--需求分析
  • 原文地址:https://www.cnblogs.com/dingyingsi/p/9401498.html
Copyright © 2011-2022 走看看