当前位置:首页 > 实时新闻 > 正文

maven私服搭建

摘要: maven私服搭建最佳答案53678位专家为你答疑解惑maven私服搭建一、什么是mavenMaven是基于POM(工程对象模型...

maven私服搭建

最佳答案 53678位专家为你答疑解惑

maven私服搭建

一、什么是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仓库中。

基础服务搭建-maven私服

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私服自动拉取相关依赖

界面如下:

发表评论