当前位置: 首页 > 科技观察

做开发这么久了,还不知道怎么搭建服务器Maven私有仓库?这个也太low了

时间:2023-03-17 23:59:52 科技观察

最近有很多小伙伴想在自己公司的内网搭建一个Maven私服环境,但是在自己搭建的过程中,总会遇到或多或少的一些问题,问我有没有可以发表一篇关于如何搭建Maven私服的文章。不,有这篇文章。好了,话不多说,接下来我们一起搭建Maven私服环境吧!环境说明环境:CentOS6.x~8.0,JDK8,SonatypeNexus,MavenIP:192.168.50.131root用户操作安装Nexus的前提条件:已安装JDK8并配置环境变量。朋友自己搭建JDK8环境,这里就不赘述了。相信小伙伴们可以正确搭建JDK8环境。下载Nexus下载Nexus(这里,我使用的是:nexus-2.11.2-03-bundle.tar.gz),下载地址:http://www.sonatype.org/nexus/go/,我们也可以在服务器上在命令行输入以下命令,下载nexus-2.11.2-03-bundle.tar.gz安装文件。#wgethttps://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2-03-bundle.tar.gz也可以去链接:https://download.csdn.net/download/l1028386804/12523592下载并解压Nexus#mkdirnexus#tar-zxvfnexus-2.11.2-03-bundle.tar.gz-Cnexus#cdnexus#lsnexus-2.11.2-03sonatype-work(anexusservice,Aprivatelibrarydirectory)(anexusservice,aprivatelibrarydirectory)EditNexus编辑Nexus的nexus.properties文件,配置端口和工作目录信息(保持默认)#cdnexus-2.11.2-03#lsbin配置文件库许可证。txtlogsnexusNOTICE.txttmp查看目录结构,运行jetty#cdconf#vinexus.properties#Jettysectionapplication-port=8081application-host=0.0.0.0nexus-webapp=${bundleBasedir}/nexusnexus-webapp-context-path=/nexus#Nexussectionnexus-work=${bundleBasedir}/../sonatype-work/nexusruntime=${bundleBasedir}/nexus/WEB-INF编辑nexus脚本,配置RUN_AS_USER参数#vi/usr/local/nexus/nexus-2.11.2-03/bin/nexus#RUN_AS_USER=更改为:RUN_AS_USER=在根防火墙中打开端口8081#vi/etc/sysconfig/iptables添加:-AINPUT-mstate--stateNEW-mtcp-ptcp--dport8081-jACCEPT保存后重启防火墙#serviceeiptablesrestartstartnexus#/usr/local/nexus/nexus-2.11.2-03/bin/nexusstart**********************************************警告-不建议以usr/local身份运行********************************************正在启动NexusOSS...已启动NexusOSS。访问nexus浏览器打开:http://192.168.50.131:8081/nexus/loginnexus默认用户名admin,这里默认密码admin123,Nexus已经安装好,下一步是Nexus配置Nexus配置(登录后)设置administratormailboxmenuAdministration/Serverconfigurationmailboxserviceaddress(如果忘记密码,可以通过此邮箱找回密码)settingUsermailbox为用户配置邮箱地址,方便忘记密码时找回:用户修改密码warehousetypegroup仓库组:Nexus通过仓库组的概念来管理多个仓库,这样我们就可以在项目中直接请求仓库组来请求仓库组管理的多个仓库;hosted宿主仓库:主要用于发布项目内部组件或第三方项目组件(如购买的商业组件)以及无法从公共仓库获取的组件(如Oracle的JDBC驱动)proxy代理仓库:Proxy公共远程仓库;virtual虚拟仓库:用于适配Maven1;一般使用什么样的仓库是hosted,proxy。Hosted仓库常见类型说明:releasesinternalmodulesreleasemodulereleasewarehousesnapshotsreleaseinternalSNAPSHOTmodulewarehouses3rdpartydependencywarehouse,如果构建的Maven项目是本地的,如果没有对应的依赖包,一般由内部人员下载并发布该数据在仓库中,会去Nexus私服下载。如果Nexus私服没有这个依赖包,会回到远程中央仓库下载依赖。这些中央仓库是代理。Nexus私服下载成功后,下载到本地Maven库,供项目引用。设置代理存储库设置代理存储库(ApacheSnapshots/Central/CodehausSnapshots)允??许远程下载,如下所示。Maven本地库的安装和配置下载Maven配置Maven环境变量vim/etc/profileMAVEN_HOME=/usr/local/mavenJAVA_HOME=/usr/local/jdkCLASS_PATH=$JAVA_HOME/libPATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATHexportJAVA_HOMEMAVEN_HOMECLASS_PATHPATHsource/etc/profile配置本地Maven复制Mavenconf目录下的配置文件settings.xml,重命名为settings-lyz.xml。修改配置文件后,内容如下:D:/Maven_Repository/.m2/repositorytruefalseorg.mortbay.jettyorg.jenkins-ci.toolsnexus-releasesdeploymentdeployment123nexus-snapshotsdeploymentdeployment123lyzfalse1.8nexushttp://192.168.50.131:8081/nexus/content/groups/public/truetruenexushttp://192.168.50.131:8081/nexus/content/groups/public/truetruelyz其中,在配置文件D:/Maven_Repository/.m2/repository表示本地仓库位于D:/Maven_Repository/.m2/repository目录下配置文件中的如下配置项。http://192.168.50.131:8081/nexus/content/groups/public/与下图链接一致:ConfigureEclipseMaven配置IDEAMaven项目构建和发布首先我们需要在项目的pom.xml文件中添加如下内容,将项目构建的Jar发布到Maven私有仓库nexus-releasesNexusReleaseRepositoryhttp://192.168.50.131:8081/nexus/content/repositories/releases/nexus-snapshotsNexusSnapshotRepositoryhttp://192.168.50.131:8081/nexus/content/repositories/snapshots/在配置描述项目的pom.xml文件中,如果版本配置如下:0.0.1-SNAPSHOT发布到Maven私有仓库,对应目录如下:如果版本co配置如下:0.0.1-RELEASE,发布到Maven私有仓库后对应目录如下。完整的pom.xml文件的配置如下所示。4.0.0common-utils-mavencom.chwl.common0.0.1-SNAPSHOTnexus-releasesNexus版本存储库http://192.168.50.131:8081/nexus/content/repositories/releases/nexus-snapshotsNexus快照存储库http://192.168.50.131:8081/nexus/content/repositories/snapshots/UTF-81.8这里省略....org.apache.maven.pluginsmaven-compiler-plugin${jdk.version}${jdk.version}${project.build.sourceEncoding}<插件>org.apache.maven.plugins<工件id>maven-source-plugin<版本>2.1.2attach-sourcesjar具体发布步骤如下:右键pom.xml->Runas->Mavenbuild->上图中private库为空,我们右键pom.xml->Runas->Mavenbuild(此时pom.xml文件的版本为0.0.1-SNAPSHOT)。构建完成后,就意味着项目已经构建完成,并发布到我们的Maven私有仓库中。此时上图中的Release目录是空的。这个时候我们修改pom.xml的版本为0.0.1-RELEASE,右键pom.xml->Runas->Mavenbuild再次构建项目,此时发布的目录为as如下图所示:表示项目已经构建并发布到我们的Maven私有仓库中。最后我们将第三方Jar依赖添加到我们的Maven私有仓库中。具体操作如下:如上图所示,第三方依赖私有仓库为空。我们按照以下步骤将第三方依赖上传到我们的Maven私有仓库中。如上图,第三方依赖已经上传到我们的Maven私有仓库中了。至此,Maven私有库和本地库的安装配置就结束了。