Nexus搭建Maven私服

前言
组件化或者造轮子的时候我们往往需要将library打包成aar提供使用,这样的好处是:使用方便,直接加载库地址即可、版本管理的时候减少其他开发者格式化代码引起冲突、避免“手贱”轻易去修改库中的代码。
一般个人的项目都是通过github、jcenter上,但企业基本都是在局域网或者自己的服务器上搭建私服进行管理。

Nexus搭建

1.环境:Mac系统
2.下载Nexus,解压,进入bin
在这里插入图片描述
执行

./nexus start

这样Nexus就启动了。没有进行修改过的话默认端口是8081,访问localhost:8081
在这里插入图片描述默认账号admin, 默认密码:admin123

3.创建自己的仓库
在search–>maven–>设置中点点击
在这里插入图片描述
点击之后进入Repository目录下,在Repository页面点击Repositories进入Repositories目录下,
在这里插入图片描述
点击Create Repository,选择maven2(hosted)
在这里插入图片描述填写名称,选择Snapshot,点击新建,即可新建我们定义的仓库

在这里插入图片描述新建之后,在Browser即可查看结果:
在这里插入图片描述

将library打包AAR上传到Nexus maven私服上

1.在项目下的gradle.properties上定义上传Nexus的常量

NEXUS_REPOSITORY_URL=http://localhost:8081/repository/linxz_nexus_test_snapshot/
POM_GROUPID=com.linxz.android
POM_PACKAGING=aar
NEXUS_USERNAME=admin
NEXUS_PASSWORD=admin123

如下图:
在这里插入图片描述NEXUS_REPOSITORY_URL为上传的路径,通过Nexus上的Browser,copy得到:
在这里插入图片描述2.在项目根目录的build.gradle中配置aar上传的地址、用户名、密码

        maven {
            url 'http://localhost:8082/repository/linxz_nexus_test_snapshot/'
            credentials{
                username 'admin'
                password 'admin123'
            }
        }

如下图:
在这里插入图片描述
3.在库中的build.gradle中配置打包的aar名称、版本号等信息

添加maven插件

apply plugin: 'maven'

定义aar版本名称、版本号、版本描述等信息

def pomName=this.getName()
def pomVersion = '1.0.0-SNAPSHOT'
def pomDescription = 'first commit'

编写打包、上传代码

uploadArchives{
    repositories{
        mavenDeployer{
            repository(url:NEXUS_REPOSITORY_URL){
                authentication(userName: NEXUS_USERNAME,password: NEXUS_PASSWORD)
            }
            pom.project{
                name pomName
                version pomVersion
                groupId POM_GROUPID
                artifactId pomName
                packaging POM_PACKAGING
                description pomDescription
            }
        }
    }
}

如下图:
在这里插入图片描述4.打包并上传aar
点击AndroidStudio右侧的Gradle中项目->库->Tasks->upload->uploadArchives,会进行自动打包
在这里插入图片描述执行结果如下表示打包并上传成功:

09:13:55: Executing task 'uploadArchives'...

Executing tasks: [uploadArchives]


> Configure project :app
WARNING: The specified Android SDK Build Tools version (28.0.1) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.4.0.
Android SDK Build Tools 28.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '28.0.1'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

> Configure project :lib_nexus_test
WARNING: The specified Android SDK Build Tools version (28.0.1) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.4.0.
Android SDK Build Tools 28.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '28.0.1'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

> Task :lib_nexus_test:preBuild UP-TO-DATE
> Task :lib_nexus_test:preReleaseBuild UP-TO-DATE
> Task :lib_nexus_test:checkReleaseManifest UP-TO-DATE
> Task :lib_nexus_test:generateReleaseBuildConfig UP-TO-DATE
> Task :lib_nexus_test:generateReleaseResValues UP-TO-DATE
> Task :lib_nexus_test:processReleaseManifest UP-TO-DATE
> Task :lib_nexus_test:prepareLintJar UP-TO-DATE
> Task :lib_nexus_test:mergeReleaseConsumerProguardFiles UP-TO-DATE
> Task :lib_nexus_test:mergeReleaseShaders UP-TO-DATE
> Task :lib_nexus_test:compileReleaseShaders UP-TO-DATE
> Task :lib_nexus_test:compileReleaseAidl NO-SOURCE
> Task :lib_nexus_test:compileReleaseRenderscript NO-SOURCE
> Task :lib_nexus_test:generateReleaseResources UP-TO-DATE
> Task :lib_nexus_test:packageReleaseResources UP-TO-DATE
> Task :lib_nexus_test:generateReleaseRFile UP-TO-DATE
> Task :lib_nexus_test:generateReleaseSources UP-TO-DATE
> Task :lib_nexus_test:javaPreCompileRelease UP-TO-DATE
> Task :lib_nexus_test:compileReleaseJavaWithJavac UP-TO-DATE
> Task :lib_nexus_test:extractReleaseAnnotations UP-TO-DATE
> Task :lib_nexus_test:generateReleaseAssets UP-TO-DATE
> Task :lib_nexus_test:packageReleaseAssets UP-TO-DATE
> Task :lib_nexus_test:packageReleaseRenderscript NO-SOURCE
> Task :lib_nexus_test:prepareLintJarForPublish UP-TO-DATE
> Task :lib_nexus_test:processReleaseJavaRes NO-SOURCE
> Task :lib_nexus_test:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
> Task :lib_nexus_test:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
> Task :lib_nexus_test:mergeReleaseJniLibFolders UP-TO-DATE
> Task :lib_nexus_test:transformNativeLibsWithMergeJniLibsForRelease UP-TO-DATE
> Task :lib_nexus_test:transformNativeLibsWithStripDebugSymbolForRelease UP-TO-DATE
> Task :lib_nexus_test:transformNativeLibsWithSyncJniLibsForRelease UP-TO-DATE
> Task :lib_nexus_test:bundleReleaseAar UP-TO-DATE
> Task :lib_nexus_test:uploadArchives

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 0s
23 actionable tasks: 1 executed, 22 up-to-date
09:13:56: Task execution finished 'uploadArchives'.

这时候再查看Nexus私服上,看看有没有真正上传到Nexus上

点击Nexus上的Search,Maven,可以看到我们已经打包上传的aar
在这里插入图片描述项目中引用已打包好的库

在需要这个库的项目的build.gradle中添加

 implementation 'com.linxz.android:lib_nexus_test:1.0.0-SNAPSHOT'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值