AndroidStudio+Nexus3.x搭建Maven私服
環境
文章的執行環境為:
AndroidStudio版本:3.1.4
Gradle版本:3.1.4
Nexus版本:3.13.0
前言
dependencies {
...
implementation 'org.litepal.android:core:2.0.0' //資料庫
implementation 'org.greenrobot:eventbus:3.1.1'
...
}
作為一名Android開發者,像上面一行程式碼匯入一個框架的方法,肯定很熟悉。
這些框架的程式碼就放在作者的Maven倉庫裡面,然後給我們遠端引入到自己的專案裡面。
現在使用GitHub+jitpack搭建打包倉庫的也是很常見,就是jitpack將GitHub中配置好的程式碼打包到自己的倉庫幫使用者代理。詳情見:GitHub+jitpack生成自己的Compile依賴
Maven本地倉庫
由於AndroidStudio(AS)自帶Maven倉庫打包外掛,所以無需任何環境和工具,我們也可以用AS打包程式碼到本地,然後直接本地引用即可。
打包程式碼
我們在需要打包的Library的build.gradle中新增如下程式碼:
apply plugin: 'maven' //maven倉庫外掛
....
uploadArchives {
repositories.mavenDeployer {
//打包的路徑
repository(url: 'file://D:/nexus-3.13.0/Repositories')
pom.project {
version '1.0' //版本號,多次打包不能一致
artifactId 'PrintHello' //識別Id,與專案名稱一致即可
groupId 'com.demon' //組號,類似包名
packaging 'aar' //打包格式
description 'PrintHello dependences lib' //描述
}
}
}
然後如下圖操作,打包完成後,我們會在打包的路徑看到生成的檔案。
引入程式碼
首先在工程的根目錄的build.gradle中新增:
allprojects {
repositories {
...
//上面打包的路徑
maven(){url 'file://D:/nexus-3.13.0/Repositories'}
...
}
}
然後在專案的build.gradle中新增:
dependencies {
...
//格式:groupId:artifactId:version
implementation 'com.demon:PrintHello:1.0'
...
}
點選Sync now,如果成功,則引入成功。
Nexus3.X搭建私服倉庫
上面的程式碼在本地,只能自己使用。要給別人使用,我們就需要搭建一個遠端倉庫。
下面介紹如何本地使用nexus3.X搭建私服倉庫(也可以搭建在伺服器上),並打包程式碼和引用。
Nexus下載:https://www.sonatype.com/download-oss-sonatype
安裝配置如下:Windows下安裝Nexus OSS 3.4.0
配置Nexus
將下載的nexus.xxx.zip檔案解壓到自定義目錄下即可。
開啟…/etc/nexus-default.properties檔案,配置Nexus埠和上下文路徑。
- application-host : Nexus服務監聽的主機
- application-port: Nexus服務監聽的埠,
- nexus-context-path : Nexus服務的上下文路徑
我的配置如下:
# Jetty section
application-port=8081
application-host=127.0.0.1
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/
# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
開啟…/bin/nexus.vmoptions檔案,執行環境配置。
可以配置執行時的最大堆、最小堆等,可以根據個人的電腦以及需要修改。
此處我沒有做任何修改。
安裝Nexus
在Nexus的bin檔案下,執行管理員的cmd。
- 啟動nexus服務:
nexus.exe /run
- 安裝nexus服務:
nexus.exe /install
- 啟動服務:
net start nexus
如果需要解除安裝Nexus:nexus.exe /uninstall
關閉服務:net stop nexus
登陸Nexus
瀏覽器輸入:127.0.0.1:8081
(若修改了上下文路徑,後面需要加上該路徑)
點選Sign in
進行登陸,nexus預設的使用者名稱是admin
,密碼為admin123
登陸成功便能看見一些預設的倉庫。
倉庫名 | 作用 |
---|---|
hosted(宿主倉庫庫) | 存放本公司開發的jar包(正式版本、測試版本) |
proxy(代理倉庫) | 代理中央倉庫、Apache下測試版本的jar包 |
group(組倉庫) | 使用時連線組倉庫,包含Hosted(宿主倉庫)和Proxy(代理倉庫) |
virtual (虛擬倉庫) | 基本用不到,重點關注上面三個倉庫的使用 |
建立倉庫
選擇Maven2(hosted)
建立倉庫成功後,看到倉庫可以點選Copy複製倉庫路徑。
打包程式碼
我們在需要打包的Library的build.gradle中新增如下程式碼:
apply plugin: 'maven' //maven倉庫外掛
....
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
//Copy複製倉庫路徑
repository(url: 'http://127.0.0.1:8081/repository/Test/') {
//你Nexus的賬戶密碼
authentication(userName: 'admin', password: '123456')
}
pom.project {
version '1.0.0'
artifactId 'PrintHello'
groupId 'com.demon'
packaging 'aar'
description 'PrintHello dependences lib'
}
}
}
}
可以看見跟本地打包相比就是修改了倉庫的路徑,和新增倉庫的認證資訊。
如上本地打包,在Gradle中執行uploadArchives即可。
打包成功後,如下圖能打包成功後生成的檔案。
引入程式碼
首先在工程的根目錄的build.gradle中新增:
allprojects {
repositories {
...
//Copy複製倉庫路徑
maven(){url 'http://127.0.0.1:8081/repository/Test/'}
}
}
然後在專案的build.gradle中新增:
dependencies {
...
//格式:groupId:artifactId:version
implementation 'com.demon:PrintHello:1.0.0'
...
}
點選Sync now,如果成功,則引入成功。
跟本地引入,除倉庫路徑需要修改外,其餘完全一致。
參考
相關文章
- Maven-搭建Maven私服的方法Maven
- 使用 Github 搭建 maven 私服GithubMaven
- docker搭建Nexus搭建Maven私服DockerMaven
- maven學習(中)- 私服nexus搭建Maven
- maven 學習總結(九)——使用Nexus搭建Maven私服Maven
- Linux下用nexus搭建maven私服LinuxMaven
- maven 安裝到私服Maven
- Maven知識記錄(一)初識Maven私服Maven
- maven自定義阿里雲私服Maven阿里
- Maven私服架設(nexus / on windows)MavenWindows
- 安裝Maven私服—Sonatype nexusMaven
- npm私服 verdaccio 搭建NPM
- 阿里私服 maven 配置settings.xml阿里MavenXML
- Maven私服:Docker安裝nexus3MavenDockerS3
- Maven私服倉庫配置-Nexus詳解!Maven
- Llinux下搭建NPM私服LinuxNPM
- docker搭建maven私服(nexus3),整合springboot上傳下載依賴DockerMavenS3Spring Boot
- 小夥伴問我:如何搭建Maven私服?我連夜肝了這篇實戰文章!!Maven
- 記一次maven nexus私服釋出Maven
- 研發提效必備技能:手把手教你基於Docker搭建Maven私服倉庫DockerMaven
- 搭建 nuget 私服及注意事項
- 使用docker快速搭建gitlab私服DockerGitlab
- 使用JFrog Artifactory Open Source 搭建私服
- 本地Maven引用其他Jar包,非雲上。Nenux私服。MavenJARUX
- Android Studio使用gradle向Maven私服提交AndroidGradleMaven
- Maven高階-本地倉庫訪問私服配置及私服資源上傳與下載Maven
- 搭建自己的私服倉庫Nexus
- 手把手教你搭建Docker Registry私服Docker
- 企業級--Sonatype Oss(01)私服搭建
- Maven 教程之釋出 jar 到私服或中央倉庫MavenJAR
- git 入門教程之 git 私服搭建教程Git
- RHEL7/CentOS7 yum私服搭建CentOS
- 利用nexus構建maven、docker、npm、gradle私服倉庫MavenDockerNPMGradle
- Maven 環境搭建Maven
- MAVEN環境搭建Maven
- Maven私服Nexus3.x環境構建操作記錄MavenS3
- 如何釋出本地maven專案jar包部署到nexus私服?MavenJAR
- [Docker系列·6]搭建基於Docker的NPM私服SinopiaDockerNPM