设为首页 加入收藏

TOP

Nexus私有maven库部署和使用(四)
2023-07-25 21:41:47 】 浏览:96
Tags:Nexus 私有 maven
name && it.version) { def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', it.group) dependencyNode.appendNode('artifactId', it.name) dependencyNode.appendNode('version', it.version) dependencyNode.appendNode('scope', scope.name) } } } } } } repositories { maven { //设置仓库地址和账号密码 url = NEXUS_MAVEN_URL credentials { username = NEXUS_USERNAME password = NEXUS_PASSWORD } //下面是动态切换release仓库或snapshot仓库 // def releasesRepoUrl = "$buildDir/repos/releases" // def snapshotsRepoUrl = "$buildDir/repos/snapshots" // url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl } } } }

在Module里build.gradle文件里进行引用:

buildscript {
    apply from: "../nexus-maven-publish.gradle"
}

plugins {
    id 'com.android.library'
    id 'com.github.dcendents.android-maven'
}
//后面的省略...

PS:buildscript要放在plugins之前

发布aar的步骤:

1.修改nexus-maven-publish.gradle文件里定义的版本号POM_VERSION

注意下面的步骤执行的命令不是单个Module里的哦!!

2.清除数据和重新编译

3.发布(注意和上面的单Module有所不同)

本来想着自定义一个Task,实现上面的各命令的点击操作的,不然每次发布都要点个几次鼠标可太累了,但最终还是实现不了,如果有大佬路过可以在评论区指点一下,感激不尽

使用maven插件:

plugins {
    id 'com.android.library'
    id 'publishing'
    id 'maven'
}

def NEXUS_MAVEN_URL = "http://localhost:9888/repository/maven-releases/"
def NEXUS_USERNAME = "admin"
def NEXUS_PASSWORD = "admin"

def POM_NAME = "webviewbase"
def POM_GROUP_ID = "site.starsone"
def POM_ARTIFACT_ID = "webviewbase"
def POM_VERSION = "1.0"
def POM_PACKAGING = "aar"
def POM_DESCRIPTION = "webviewbase基础库"
uploadArchives {
    configuration = configurations.archives
    repositories {

        mavenDeployer {
            repository(url: NEXUS_MAVEN_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
//                snapshotRepository(url: NEXUS_MAVEN_SNAPSHOT_URL) {
//                    authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
//                }
            //'groupId:artifactId:version' 或 'groudId:artifactId:version@aar' 形式
            pom.project {
                name POM_NAME
                groupId POM_GROUP_ID
                artifactId POM_ARTIFACT_ID
                version POM_VERSION
                packaging POM_PACKAGING
                description POM_DESCRIPTION
            }
        }
    }
}
// 生成sources.jar  写 artifacts {} 之前
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}
artifacts {
    //编译的源码类型
    archives androidSourcesJar
    //archives androidJavadocsJar
}

android{
    ...
}

通过右侧的gradle菜单可以触发上传

依赖本地私有库(Maven)

步骤稍微有些繁琐,需要修改maven目录下的setting.xml文件,不过改一次就好

1.serve配置

首先声明一下私有库的账号密码

注意这里的id是随意定义的,可以自由编写,但需要与下面的profile里的id对应

<server>
  <id>localRepo</id>
  <username>admin</username>
  <password>admin</password>
</server>

这里看网上的介绍说,只是打包上传的时候maven会读取这里,实际上,如果私有库没有开放允许任何人访问(即我上面部署操作的步骤),到时候依赖的时候也会去根据id去读取这个server标签,否则到时候也是无法依赖的

2.profile配置

网上看其他资料,是去加了mirror,但实际上:

如果mirrors下即使有多个mirror配置,实际上只会去第一个mirror里找,找不到不会往下个mirror里找的

除非第一个mirror因为网络原因链接不上,才会触发到下一个mirror里去找依赖的操作逻辑

<profile>

  <id>localRepoProfile</id>

  <activation>
    <jdk>1.8</jdk>
  </activation>

  <repositories>
    <repository>
      <id>localRepo</id>
      <name>本地私
首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇数据类型学习与拓展 下一篇读Java性能权威指南(第2版)笔记..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目