记一次android利用nexus搭建maven私服的过程

1

首先进入Nexus官网https://help.sonatype.com/repomanager2/download/download-archives—repository-manager-oss,下载最新版本,

选择download-archives—repository-manager-oss,目前免费版最新版本是2.14.14,

点击nexus-2.14.14-01-bundle.zip下载下来

2

解压,有两个文件夹, nexus和 sonatype-work,接下来操作可能需要管理员权限,

win+x打开管理窗口,cd c/xxx/nexus/bin,首先运行 ./nexus install,很快显示完成,然后再运行./nexus start显示 nexus started ,ok搞定了

这个时候可以去任务管理器看下有没有wrapper-nexus进程,有说明成功了,没有再搜下其他办法
在这里插入图片描述

  • ps:这里网上还说需要改nexus下面config文件,我也改了一下,感觉如果是配置了java的环境变量就不需要改

     {your path}\nexus-2.14.14-01\bin\jsw\conf\wrapper.config修改:wrapper.java.command={your path}\java\bin\java
    
3

进入http://localhost:8081/nexus/,输入用户名密码:默认账号密码为

admin/admin123

然后找到仓库repository,

只需要关注hosted(宿主仓库)类型:

我们自己的依赖仓库,目前 maven-releases 和 maven-snapshots 是 hosted 类型的仓库。我们可以上传到这两个仓库,也可以自己创建 hosted 仓库。

4

as新建需要的module,进行如下配置

在最外层的build.gradle配置maven打包插件

    //自动化maven打包插件
    classpath "com.github.dcendents:android-maven-gradle-plugin:1.3"

在module下新建gradle.properties文件,配置如下内容

GROUP_ID = online.com.testlib
ARTIFACTID =test
LIBRARY_VERSION=1.0-SNAPSHOT

SNAPSHOT_REPOSITORY_URL=http://192.168.10.124:8081/nexus/content/repositories/snapshots/
RELEASE_REPOSITORY_URL=http://192.168.10.124:8081/nexus/content/repositories/releases/

NEXUS_USERNAME=admin
NEXUS_PASSWORD=admin123

在library的build.gradle中配置脚本:

  def isReleaseBuild() {
    return LIBRARY_VERSION.toUpperCase().contains("SNAPSHOT") == false
}

def getRepositoryUsername() {
    return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}

def getRepositoryPassword() {
    return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}

def getRepositoryUrl() {
    return isReleaseBuild() ? RELEASE_REPOSITORY_URL : SNAPSHOT_REPOSITORY_URL
}

在android{}里面配置

afterEvaluate { project ->
    uploadArchives {
        repositories {
            mavenDeployer {
                pom.groupId = GROUP_ID
                pom.artifactId = ARTIFACTID
                pom.version = LIBRARY_VERSION
                repository(url: getRepositoryUrl()) {
                    authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
                }
            }
        }
    }
    task androidJavadocs(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
    task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
        classifier = 'javadoc'
        from androidJavadocs.destinationDir
    }
    task androidSourcesJar(type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.sourceFiles
    }

    //解决 JavaDoc 中文注释生成失败的问题
    tasks.withType(Javadoc) {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
        options.addStringOption('charSet', 'UTF-8')
    }
    artifacts {
        archives androidSourcesJar
        archives androidJavadocsJar
    }
}

同步一下工程

然后在as右上角找到gradle,找到当前lib下面的一个uploadArchives脚本命令,双击即可上传maven仓库
在这里插入图片描述

接下来可以去网页上查看上传的包
在这里插入图片描述

4

如何使用呢,简单
添加maven仓库

allprojects {
repositories {
    google()
    jcenter()
    maven{
        url 'http://192.168.10.xxx:8081/nexus/content/repositories/snapshots/'
    }
}

}

添加依赖,构建一下即可

  implementation 'online.com.testlib:test:1.0-SNAPSHOT'
5

这样虽然可以了,但是发现如果module里面存在kotlin代码就会出现javadoc报错

  • 解决办法
    在最外层的build文件里面加

    allprojects {
      tasks.withType(Javadoc).all { enabled = false }
      }
    

参考:http://www.it1352.com/829972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值