在Centos上搭建Maven中央仓库
环境
安装JAVA
在这里使用yum来安装java的jdk,可以使用指令yum search java | grep jdk
来查看yum下提供了哪些jdk版本。这里选择1.8版本,安装指令为:sudo yum install java-1.8.0-openjd
安装完毕后还需要修改环境变量,这里的环境变量我们将在/etc/profile.d
中添加一个java.sh文件中设置,指令如下:
cd /etc/profile.d sudo vim java.sh
在里面填写如下内容:
#set java environment JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.7.0.75.x86_64 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
然后保存并退出。(这里需要了解vim的操作,本文将不详述)
最后在用source /etc/profile
启动环境变量,可以使用java -version
查看配置是否成功。
安装nexus
用wget获取nexus的安装包,这里我安装的是2.11.2版本,指令如下:
wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2-03-bundle.tar.gz
然后在当前目录下解压缩并进入文件夹:
tar -zxvf nexus-2.11.2-03-bundle.tar.gz mv nexus-2.11.2-03 nexus #重命名文件夹 cd nexus
解压缩后可以看到有两个文件夹,一个是nexus服务,一个是它的私有仓库目录
然后编辑nexus脚本,它位于NEXUS_HOME/bin
中,指令如下:
vi bin/nexus
将RUN_AS_USER
改为RUN_AS_USER=root
这里还需要调整你的防火墙配置,开放恰当的端口,这里就不赘述了。
然后使用下面指令启动nexus服务:
./bin/nexus start
这时就可以在浏览器上访问到nexus服务啦!
可以从右上角的Log In登录进入系统,默认的角色有三个,我们先用admin的角色进入系统,admin的默认密码为admin123.
点击左侧的users查看当前系统的用户。可以看到一共三个用户,admin,deployment和anonymous。
admin:该用户拥有Nexus的全部权限,默认密码为admin123。
deployment:该用户能够访问Nexus,浏览仓库内容、搜索、上传部署构件,但是不能对Nexus进行任何配置,默认密码为deployment123。
anonymous:该用户对应了所有未登录的匿名用户,它们可以浏览仓库并进行搜索。
再点击repositories我们可以看到有一下几种默认的类型,我们这里将使用third-party类型的repository,所以我们需要开启其支持编译上传
还有很多可以通过UI进行操作,我们这里将不再赘述。下面将介绍如何在本地通过maven将打包好的jar上传到nexus上。
Maven 打包和部署
首先我们需要修改本地的maven配置,添加远程仓库的用户名和密码。首先找到本地maven的settings.xml文件。可以使用mvn -version
来找到maven的地址:
这里可以看到Maven home的地址,然后进入这个文件夹config下的settings.xml
在里面添加server。这里我们将使用third party那个仓库。
然后在需要打包的项目的maven依赖中添加如下内容:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> </configuration> </plugin> <!--部署插件--> <plugin> <artifactId>maven-deploy-plugin</artifactId> <executions> <execution> <id>deploy</id> <phase>deploy</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <distributionManagement> <!-- ID需要和全局配置文件中服务器配置的ID一致 --> <repository> <id>3rd party</id> <url>REPOSITORY_URL</url> </repository> </distributionManagement>
这里的REPOSITORY_URL是指你的仓库的位置,可以在之前展示的repository页面查看到
maven打包的指令
mvn clean package
此时会在./target目录下看到打包好的jar文件,然后使用如下指令部署:
mvn deploy:deploy-file -DgroupId=com.xy.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=./target/xxx.jar -Durl=http://IP:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
之后就可以在web端看到部署上去的jar包了。
参考资料
在centos上搭建nexus
Maven自动部署jar包至本地与远程私有仓库
Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】
maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
Maven-008-Nexus 私服部署发布报错 Failed to deploy artifacts: Failed to transfer file: ... Return code is: 4XX, ReasonPhrase: ... 解决方案
想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号!将会不定期的发放福利哦~