CentOS 8 Mavn私服搭建文档

一、环境部署

防火墙设置
#查看状态
systemctl status firewalld.service

#打开防火墙
systemctl start firewalld.service

#关闭防火墙
systemctl stop firewalld.service

#开启防火墙
systemctl enable firewalld.service

#禁用防火墙
systemctl disable firewalld.service
IP设置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#以下为增加IP内容
IPADDR=192.168.10.10
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
更改虚拟机主机名称
hostnamectl 
#设置名称为 adk
hostnamectl set-hostname adk
hostnamectl
reboot
#测试网络
ping -c 3 www.baidu.com

1.安装JDK1.8

CentOS8上使用 yum 直接安装,环境变量自动配置好

查看是否已安装

看到下面结果,说明已经安装配置 jdk

[root@xxx ~]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
卸载

查看系统是否自带 jdk

rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj

如果有输出信息,批量卸载系统自带

rpm -qa | grep java | xargs rpm -e --nodeps

如果使用 yum 安装的 jdk,请使用下面命令卸载

yum -y remove java-1.8.0-openjdk-headless.x86_64
yum安装JDK1.8
yum install java-1.8.0-openjdk* -y
查看当前jdk版本
java -version

2.安装nexus

#1.解压nexus-3.13.0-01-unix.tar.gz文件
tar -zxvf nexus-3.13.0-01-unix.tar.gz 
#在root目录启动异常,修改启动文件将true 改为 false (可有可无)
vim nexus
run_as_root=false
#2.在nexus bin目录下执行启动服务命令
#后台启动,不能查看日志
./nexus start  
#实时日志启动 (我用这个命令出现了问题)
./nexus run

3.访问 http://127.0.0.1:8081/ nexus 默认账户:admin 密码:admin123

3.项目中配置Nexus仓库

maven的setting.xml文件配置

1.项目发布到私服

<!--存放本地仓库的地方-->  
<localRepository>D:/Java/maven/repository</localRepository>  
<!--私服的验证信息-->  
<servers>
    <!--发布版-->
    <server>  
        <id>releases</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>
    <!--测试版-->
    <server>  
        <id>snapshots</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>  
</servers>  

2.从私服获取jar包

配置镜像,对指定路径进行拦截,默认maven访问中央,拦截后改为访问私服

<mirrors>  
    <mirror>  
        <id>nexus</id>  
        <mirrorOf>*</mirrorOf>  
        <name>maven-public</name>  
        <url>http://192.168.71.133:8081/repository/maven-public/</url> 
    </mirror>  
</mirrors>   
<!--配置仓库的一些信息,其主要作用是用来覆写central中央仓库的一些配置信息 id必须同mirrors一致-->  
<profiles>  
    <profile>  
        <id>nexus</id><!--和activeProfile 值一致 -->
        <repositories>
            <!--包含需要连接到远程仓库信息-->
            <repository> 
                <!--远程仓库唯一标识 -->
                <id>central</id>
                <name>Central</name>  
          	 	<url>http://192.168.71.133:8081/repository/maven-central/</url>
                <!--是否下载releases构件-->
                <releases>
                    <enabled>true</enabled>
                    <!--更新发生频率选项是:always,daily默认,interval:X(每分钟),never-->
            		<updatePolicy>never</updatePolicy>
            		<!--Maven验证构件失败时-ignore,fail,warn(警告)-->
            		<checksumPolicy>warn</checksumPolicy>
                </releases>
                <!--是否下载snapshots构件-->
                <snapshots><enabled>true</enabled></snapshots>
                <!--构件仓库布局类型-default-egacy(遗留)-->
          		<layout>default</layout>
            </repository>  
        </repositories>
        <!--···这段可以省略
        <pluginRepositories>  
            <pluginRepository>  
                <id>central</id>  
                <name>local private nexus</name>  
				<url>http://192.168.71.133:8081/repository/maven-central</url>  
                <releases><enabled>true</enabled></releases>  
                <snapshots><enabled>true</enabled></snapshots>  
            </pluginRepository>  
        </pluginRepositories>
        ···-->
    </profile>  
</profiles>  
   
<!--激活上面配置的仓库信息-->  
<activeProfiles>  
    <activeProfile>nexus</activeProfile>  
</activeProfiles>

3.项目中pom.xml配置

<!-- 项目部署到私服配置 id和上面server中配置的id一致-->  
<distributionManagement> <!-- 远程部署管理信息 -->  
    <repository> <!--部署项目产生的构件到远程仓库需要的信息 -->  
        <id>releases</id>  
        <name>Nexus Release Repository</name>  
    <url>http://192.168.71.133:8081/repository/maven-releases/</url>  
    </repository>  
    <snapshotRepository> <!-- 如果没有配置该元素,默认部署到repository元素配置的仓库 -->  
        <id>snapshots</id>  
        <name>Nexus Snapshot Repository</name>  
        <url>http://192.168.71.133:8081/repository/maven-snapshots/</url>  
    </snapshotRepository>
</distributionManagement> 

maven的deploy命令,将项目的jar包部署到Nexus上,供其他项目组模块使用

4.发布项目to Nexus服务上

a. ecplise启动项目 Run As→Maven build Goals加参数deploy →Run 成功将项目发送至私服。

mvn clean
mvn -D skipTests deploy

b. 命令上传:

mvn deploy:deploy-file -DgroupId=com.sjing.yjyuan -DartifactId=fastjson-sj -Dversion=1.0.1 -Dpackaging=jar -Dfile=E:\installed\mavenRepository\fastjson-1.2.40.jar -Durl=http://192.168.19.10:8081/repository/3rd_part/ -DrepositoryId=deployment --settings E:\installed\mavenRepository\settings-private.xml

各参数代表含义为:

-Dmaven.test.skip=true //跳过编译、测试
-Dfile=E:\jar\alipay-sdk-java.jar //jar包文件地址,绝对路径
-DgroupId=com.alipay //gruopId,可自定义
-DartifactId=sdk-java //artifactId,可自定义
-Dversion //版本号
-Dpackaging //打包方式
-DrepositoryId //远程库服务器ID
-Durl //远程库服务器地址

maven私服原理总结:

maven私服是一种特殊的远程仓库,它是架设在局域网的仓库服务,私服代理广域网上的远程仓库,供局域网使用。私服可以部署企业私有的构件,还可以部署因版权问题不能发布在远程仓库上传的第三方构件,如:Oracle的JDBC驱动。建立私服后,便可以将这些构件部署到这个内部仓库中,还有就是私服比较节省外网带宽,访问速度可以大幅提升。

私服优点:
  • 节省外网带宽。

  • 加速Maven构建。

  • 部署第三方构件。

  • 提高稳定性,增强控制。

  • 降低中央仓库的负荷。

  • 控制和审计

  • 建立本地内部公用仓库

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值