搭建maven私服

搭建maven私服

1 maven

1.1 maven介绍
1.1.1 什么是maven?

Maven这个单词来自于意第绪语(犹太语),意为知识的积累
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

1.1.2 maven发展历史

make>apache ant>apache maven>gradle

1.1.3 maven的体系结构

1.1.4 maven核心思想

maven仓库

生命周期

pom

dependency

1.2 安装maven

访问网站 https://maven.apache.org/download.cgi

我们这里不选最新,而点击Maven 3 archives ,为了避免最新版的各种不兼容与报错
到如下网址,我选择了3.6.3进行安装,根据系统下载安装包
linux用第一个,windows用第四个

下载解压到本地

1.3 配置maven

打开apache-maven-3.6.3\conf\settings.xml文件
配置本地仓库的位置

<localRepository> 本地地址 <localRepository>

<localRepository>C:/java_env/maven/resp</localRepository>

由于中央仓库在境外,网络访问不稳定,故在开发过程中大多配置中央仓库的镜像仓库。
通过国内官网下载的idea不用修改,已经默认指定阿里云
image-20221231101418977

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>central</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

配置maven默认使用的jdk环境。

<profile>  
<id>jdk-1.8</id>  
<activation>  
<activeByDefault>true</activeByDefault>  
<jdk>1.8</jdk>  
</activation>  
  
<properties>  
<maven.compiler.source>1.8</maven.compiler.source>  
<maven.compiler.target>1.8</maven.compiler.target>  
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
</properties>  
</profile>
1.4 配置IDEA

在idea中打开File/Settings

配置本地maven

2 maven私服-用nexus创建

2.1 安装nexus

访问官网: https://help.sonatype.com/repomanager3/product-information/download

下载最新即可
在linux中找地方上传安装包
我放在/usr/local/softwares/nexus
解压文件

tar -zxvf **.tar.gz
2.2 nexus配置

进入bin文件夹

cd /usr/local/softwares/nexus/nexus-3.61.0-02/bin
vim nexus.vmoptions 

根据自己电脑配置适当调节第一、二、三的大小

配置端口
默认端口为8081,如果需要在要在文件中配置端口。(如果不需改端口,此处可以忽略)

cd ..
cd etc
 nano nexus-default.properties


开启防火墙

[root@localhost etc]# firewall-cmd --add-port=8081/tcp --permanent 
success
[root@localhost etc]# firewall-cmd --reload
success
2.3 运行nexus

返回bin文件夹

./nexus start

2.4 查看nexus的运行状态

如图则成功访问

2.5 修改管理员密码

点击右上角sign in
首先我们要去linux中查看初始密码

cd /usr/local/softwares/nexus/sonatype-work/nexus3
cat admin.password

可以看到初始密码
初始账户为admin,首次登录后会让你修改密码

3 创建私有仓库

maven-releases (Version policy=Release)默认只允许上传不带SNAPSHOT版本尾缀的包,默认部署策略是Disable redeploy 不允许重复上传相同版本号信息的jar,避免包版本更新以后使用方无法获取到最新的包。

maven-snapshots (Version policy=Snapshot)只允许上传带SNAPSHOT版本尾缀的包,默认部署策略是Allow redeploy,允许重复上传相同版本号信息的jar,每次上传的时候会在jar的版本号上面增加时间后缀信息。

maven-central 中央仓库的拷贝,如果环境可以访问中央仓库,则可以获取到相关的包,否则没用

maven-public 仓库组,不是实际个一个仓库地址,只是将现有的组合到一次,可以通过它看到所属组内全部仓库的jar信息

设置如图,其中name自定义,其余几项请保持一致


4 上传本地文件到自定义仓库中

在nexus目录下新建repo文件夹,将本地仓库内容上传,本地仓库位置见 1.3
在本地仓库上传的文件夹repo下创建一个shell脚本,命名 localrepository.sh

nano localrepository.sh
#!/bin/bash
while getopts ":r:u:p:" opt; do
    case $opt in
        r) REPO_URL="$OPTARG"
        ;;
        u) USERNAME="$OPTARG"
        ;;
        p) PASSWORD="$OPTARG"
        ;;
    esac
done

find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;

添加权限

chmod +x localrepository.sh

执行以下命令

localrepository.sh -u nexus用户名 -p nexus密码 -r 仓库地址

5 项目中引用nexus库

在maven的conf/settings.xml中配置server

在maven中配置镜像
中央仓库的资源从阿里云访问,其它资源来自nexus私服。

项目中配置发布管理
在项目的pom.xml文件中添加

    <distributionManagement>
        <repository>
            <id>wnhz-repository</id>
            <url>http://XXX.XXX.XXX.XXX:/repository/private-repository/</url>
        </repository>
    </distributionManagement>

部署项目
在maven中运行部署,部署(deploy)项目到私服。
nhz-repository
http://XXX.XXX.XXX.XXX:/repository/private-repository/

 部署项目
在maven中运行部署,部署(deploy)项目到私服。
![](https://img-blog.csdnimg.cn/d225eaf098d0475b81202c34022cce00.jpeg)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值