linux nexus端口配置,Linux下Nexus 3私服配置及gradle配置使用

1、要使用nexus服务需要安装jdk

注:我这里用的是zsh,配置使用.zshrc

#解压

rpm -ivh jdk-8u221-linux-x64.rpm

#打开环境变量配置

vim ~/.zshrc

#配置环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#保存配置

source ~/.zshrc

#验证jdk是否安装成功,执行以下命令

java -version

Nexus安装

wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz

tar -zxvf nexus-3.18.1-01-unix.tar.gz

#解压后又2个目录

#nexus-3.18.1-01:包含了 Nexus 运行所需要的文件。是 Nexus 运行必须的

#sonatype-work:包含了 Nexus 生成的配置文件、日志文件、仓库文件等。当我们需要备份 Nexus 的时候默认备份此目录即可

#配置环境变量

vim /etc/profile

export NEXUS_HOME=/usr/local/nexus/nexus-3.18.1

export PATH=$PATH:$NEXUS_HOME/bin

source /etc/profile

#修改启动用户

vim /usr/local/nexus/nexus-3.18.1/bin/nexus.rc

#run_as_user="" #内容就这一行,放开注释,填写用户即可

#修改端口

vim /usr/local/nexus/nexus-3.18.1/etc/nexus-default.properties #默认是8081

#最后启动nexus

cd /usr/local/nexus/nexus-3.18.1/bin

./nexus start

./nexus status

#访问http://ip:8081,登陆用户admin 密码存放在:/usr/local/nexus/sonatype-work/nexus3/admin.password 目录

#开机自启动

vim /etc/rc.d/rc.local

/usr/local/nexus/nexus-3.18.1/bin/nexus start #添加这一行内容

chmod 755 /etc/rc.d/rc.local

使用 ./nexus start启动,如果看到如下界面,证明我们配置成功了

2474763352d9

WeChat Image_20200716154951.png

我们现在想增加我们自己的私有仓库,如下图操作就可以

2474763352d9

WeChat Image_20200716155158.png

点击Create repository 选择maven2 (hosted)托管模式

2474763352d9

WeChat Image_20200716160201.png

配置名称以及选择发布版本为Release或snapShot

如下是我配置的测试私服,如图

2474763352d9

WeChat Image_20200717161257.png

到这里我们的私有maven库就配置完成了!!!

接下来我们使用Gradle配置私有maven库

我们使用两种方式配置(1:maven方式 ,2:maven-publish方式)

1:用maven方式配置

首先我们创建一个测试项目,并创建一个libaray

2474763352d9

WeChat Image_20200717161502.png

在我们项目的根目录的build.gradle中配置刚刚建立的仓库

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

ext.kotlin_version = "1.3.72"

repositories {

...

}

dependencies {

...

}

}

allprojects {

repositories {

maven { url 'http://172.17.71.184:8081/repository/testRepRelease/'}

}

}

然后在gradle.properties文件中配置我们的gradle(此处配置信息放在local.properties文件中更好,因为该文件是本地文件,不上传至gitlab上)

#Maven仓库的URL

MAVEN_REPO_RELEASE_URL=http://172.17.71.184:8081/repository/testRepRelease/

MAVEN_REPO_SNAPSHOT_URL=http://172.17.71.184:8081/repository/testRepSnapshot/

##对应maven的GroupId的值

#GROUP = com.eegets

#登录nexus ossde的用户名

NEXUS_USERNAME=admin

#登录nexus oss的密码

NEXUS_PASSWORD=admin123

# groupid

GROUP_ID = com.eegets

# type

TYPE = aar

# description

DESCRIPTION = This is Toast lib

再次配置我们libraray下build.gradle文件

apply plugin: 'com.android.library'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

//maven插件(1)

apply plugin: 'maven'

android {

...

}

dependencies {

...

}

//maven输出路径(2)

uploadArchives {

// configuration = configurations.archives

repositories {

mavenDeployer {

//snapShot输出地址, MAVEN_REPO_RELEASE_URL地址在 gradle.properties文件中配置

snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) {

authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)

}

//release输出地址, MAVEN_REPO_RELEASE_URL地址在 gradle.properties文件中配置

repository(url: MAVEN_REPO_RELEASE_URL) {

authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)

}

//maven信息

pom.project {

// 如果要输出release版本,version为X.X.X(例如:version '1.0.4'),

// 如果输出snapshot版本,则命名必须为 'XXX-SNAPSHOT',也就是必须要为 `-SNAPSHOT`(例如:version '1.0.4-SNAPSHOT')

version '1.0.4-SNAPSHOT'

artifactId 'toastutils-lib'

groupId GROUP_ID

// packaging TYPE

// description DESCRIPTION

}

}

}

}

接下来Sync Now一下,如果没出错的话证明我们的配置是成功的,接下来我们按照下图点击上传即可

2474763352d9

WeChat Image_20200717162658.png

然后回到Nexus界面,如出现下图中的配置,证明我们上传成功了,如下图:

2474763352d9

WeChat Image_20200717163238.png

2:用maven.publish方式配置

我们单独配置一个名称为publisher.gradle文件,如下:

apply plugin: 'maven-publish'

ext {

// 仓库地址

repositoryReleaseUrl = "http://10.185.240.240:8081/repository/android/"

repositorySnapshotUrl = "http://10.185.240.240:8081/repository/android_snapshot/"

// 用户名密码

contributorUserName = "contributor_droid"

contributorPassword = project.property("maven_password")

// 库依赖信息

libraryGroupId = "com.secoo.cooplayer"

libraryArtifact = "cooplayer"

libraryVersion = "0.0.7-SNAPSHOT"

}

// 生成源码

task generateSourcesJar(type: Jar) {

from android.sourceSets.main.java.srcDirs

classifier 'sources'

}

publishing {

repositories {

// 定义一个 maven 仓库

maven {

// 可以有且仅有一个仓库不指定 name 属性,会隐式设置为 Maven

// 仓库用户名密码

credentials {

username contributorUserName

password contributorPassword

}

// 根据 libraryVersion后缀来判断仓库地址

url libraryVersion.endsWith("SNAPSHOT") ? repositorySnapshotUrl : repositoryReleaseUrl

}

}

publications {

// 定义一个名为 AndroidLibrary 的发布

AndroidLibrary(MavenPublication) {

// 库依赖信息

groupId libraryGroupId

artifactId libraryArtifact

version libraryVersion

// 上传aar

artifact "$buildDir/outputs/aar/${project.getName()}-release.aar"

// 上传source

artifact generateSourcesJar

// 配置dependencies

pom {

withXml {

def dependencies = asNode().appendNode("dependencies")

configurations.getByName("releaseCompileClasspath")

.getResolvedConfiguration()

.getFirstLevelModuleDependencies()

.each {

def dependency = dependencies.appendNode("dependency")

dependency.appendNode("groupId", it.moduleGroup)

dependency.appendNode("artifactId", it.moduleName)

dependency.appendNode("version", it.moduleVersion)

}

} // withXml

} // pom

} // AndroidLibrary

} // publications

// 生成上传aar包

model {

tasks.publishAndroidLibraryPublicationToMavenRepository {

dependsOn project.tasks.assembleRelease

}

}

} //publishing

在我们使用的地方引入就可以

apply from: "publisher.gradle"

我们使用命令上传或图形化上传

1:命令

./gradlew publishAndroidLibraryPublicationToMavenRepository -Dorg.gradle.internal.publish.checksums.insecure=true -Pmaven_password=密码

2:图形化

2474763352d9

WeChat Image_20200717165030.png

有一个注意点:当我们使用了远程仓库上传了相同版本依赖时,有时需要为缓存指定一个时效去检查远程仓库的依赖笨版本,Gradle提供了cacheChangingModulesFor(int, java.util.concurrent.TimeUnit) ,cacheDynamicVersionsFor(int, java.util.concurrent.TimeUnit)两个方法来设置缓存的时效

configurations.all {

//每隔24小时检查远程依赖是否存在更新

resolutionStrategy.cacheChangingModulesFor 24, 'hours'

//每隔10分钟..

//resolutionStrategy.cacheChangingModulesFor 10, 'minutes'

// 采用动态版本声明的依赖缓存10分钟

resolutionStrategy.cacheDynamicVersionsFor 10*60, 'seconds'

}

dependencies {

// 添加changing: true

compile group: "group", name: "module", version: "1.1-SNAPSHOT", changing: true

//简写方式

//compile('group:module:1.1-SNAPSHOT') { changing = true }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值