一、环境部署
防火墙设置
#查看状态
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构建。
-
部署第三方构件。
-
提高稳定性,增强控制。
-
降低中央仓库的负荷。
-
控制和审计
-
建立本地内部公用仓库