maven私服搭建
Maven是基于POM(工程对象模型),通过一小段描述(pom.xml)来对项目的代码、报告文件进管理的工具。
构建工具:通过简单的命令,能够完成清理、编译、测试、打包、部署等一系列过程。依赖管理工具:项目依赖的第三方的开源类库,都可以通过依赖的方式引入到项目中来。代替了原来需要首先下载第三方jar,再加入到项目中的方式。从而更好的解决了合作开发中依赖增多、版本不一致、版本冲突、依赖臃肿等问题。项目信息管理工具:能够管理项目描述、开发者列表、版本控制系统地址、许可证等一些比较零散的项目信息。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有的插件,还能够轻松获得项目文档、测试报告、静态分析报告、源码版本、日志报告等非常具有价值的项目信息。二、maven仓库体系结构三、maven优势四、maven私服搭建Nexus是私服的一种,maven私服搭建借助于它来实现。https://help.sonatype.com/repomanager3/download
下载的最新版本nexus-3.19.1-01
启动? bin ./nexus startStarting nexushttp://localhost:8081/ 进入
用户名:admin密码:? sonatype-work/nexus3/ vim admin.password
创建maven仓库
进去选择maven2(hosted)类型即可
最终生成maven仓库
image.png五、实战项目接入maven私服1.主工程gradle配置
buildscript { //这里只是为gradle构建引入maven repositories { google() jcenter() mavenCentral() //release maven { //配置私服地址 url'http://localhost:8081/repository/stan_releases/' //配置私服账号名、密码 credentials{ username ‘admin' password ‘XXX' } } //snapshot maven { url'http://localhost:8081/repository/stan_snapshot/' credentials{ username ‘admin' password ‘XXX' } } }//java工程引入mavenallprojects { repositories { google() jcenter() //release maven { //配置私服地址 url'http://localhost:8081/#admin/repository/stan_releases/' //配置私服账号名、密码 credentials{ username 'admin' password 'XXX' } } //snapshot maven { url'http://localhost:8081/repository/stan_snapshot/' credentials{ username 'admin' password 'XXX' } } }}
2.gradle.properties变量定义
#仓库地址NEXUS_REPOSITORY_URL=http://localhost:8081/repository/stan_snapshots/#上传的maven仓库的group组织名POM_GROUPID=com.stan.android#package类型 Android工程库对应aar Java工程对应JarPOM_PACKAGING=aar#账号、密码NEXUS_USERNAME=adminNEXUS_PASSWORD=XXX
3.对应lib模块gradle上传脚本编写
//引入maven插件apply plugin: 'maven' //引入maven插件才会有uploadArchives配置//变量定义def pomName=this.getName() //当前工程名def pomVersion='1.0.0-SNAPSHOT'def pomDescription='the audio library for all projects'//上传脚本编写uploadArchives { repositories { mavenDeployer { repository(url: NEXUS_REPOSITORY_URL) { authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) } pom.project { //变量定义 name pomName version pomVersion description pomDescription artifactId pomVersion groupId POM_GROUPID packaging POM_PACKAGING } } }}
最后sync下gradle,查看对应lib模块的gradle task会新增upload,双击uploadArchives就会将当前lib模块上传到mave仓库中。
1.JDK8 安装及配置
1.1 上传JDK
mkdir –p /opt/install/jdk1.8ls -l /opt/install/jdk1.8-rw-r--r-- 1 root root 178821503 Feb 5 15:19 jdk1.8.0(linux_x64_1.8.0_74).tar.gz
1.2 安装及配置
cd /opt/install/jdk1.8tar xvzf jdk1.8.0(linux_x64_1.8.0_74).tar.gzvi /etc/profileexport PATH=$PATH:/opt/install/jdk1.8/jdk1.8.0/bin# 使环境生效source /etc/profile#检查环境java –version-----------------------------------------java version "1.8.0_74"Java(TM) SE Runtime Environment (build 1.8.0_74-b02)Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
2 安装及配置Maven
2.1 下载及安装maven
mkdir -p /home/mavencd /home/maven-rw-r--r-- 1 root root 8491533 Jul 3 2020 apache-maven-3.3.9-bin.tar.gztar zxvf apache-maven-3.3.9-bin.tar.gzcd apache-maven-3.3.9
2.2 配置maven环境变量
vim /etc/profile#mavenexport MAVEN_HOME=/home/maven/apache-maven-3.3.9export PATH=$PATH:$MAVEN_HOME/bin#使环境变量生效source /etc/profile#验证mvn -v
3.安装和配置Nexus
3.1 下载Nexus安装包,并放入指定目录下
mkdir -p /home/nexue#上传nexue并解压tar nexus-3.19.1-01-unix.tar.gz
3.2 调整nexus配置
vim /home/nexus/nexus/etc/nexus-default.properties
修改nexus端口为8088
application-port=8088 #修改端口为8088application-host=0.0.0.0#nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xmlnexus-context-path=/nexus-edition=nexus-pro-editionnexus-features=\ nexus-pro-featurenexus.hazelcast.discovery.isEnabled=true
3.3 启动nexus
cd /home/nexus/nexus/bin./nexus start
3.4 访问操作界面并修改admin密码
#访问地址http://ip:8088#初始密码admin账号的初始密码在 cat /home/nexus/sonatype-work/nexus3/admin.password 下#登录控制台后修改admin密码,详见下面页面password
4.客户端maven 配置
4.1 源码仓库发布者
4.1.1 配置发布用户名及密码(maven/setting.xml)
开发环境中本地maven的settings.xml配置文件
#修改开发环境中本地maven的settings.xml配置文件 password为刚才修改的密码<servers> <server> <id>my-releases</id> <username>admin</username> <password>password</password> </server> <server> <id>my-snapshots</id> <username>admin</username> <password>password</password> </server></servers>
4.1.2 配置代码的私库地址(maven项目的pom.xml配置)
#添加 <!-- 私服地址 --> <distributionManagement> <!-- 私库发行版jar --> <repository> <id>my-releases</id> <name>maven-releases</name> <url>http://ip:8088/repository/maven-releases/</url> </repository> <!--私库快照 --> <snapshotRepository> <id>my-snapshots</id> <name>maven-snapshots</name> <url>http://ip:8088/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
4.1.3 发布
配置私服地址后,可通过idea自带插件完成目标仓库的推送
4.2 仓库使用者-开发人员
4.2.1 项目中配置远程私库(pox.xml)
<!-- 使用aima私服代码仓库 --> <repositories> <repository> <id>maven-public</id> <name>maven-public</name> <url>http://ip:8088/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
配置好仓库指向后,添加相关依赖坐标,即可从maven私服自动拉取相关依赖
界面如下:
下一篇:“荷马史诗”的英文怎么说
发表评论