首页 > 其他分享 >项目管理工具maven(五)-私服

项目管理工具maven(五)-私服

时间:2024-03-17 15:30:41浏览次数:23  
标签:项目管理 私服 jar 仓库 maven nexus localhost

4. maven私服架构

 4.1 maven私服介绍

        4.1.1 私服介绍

正式开发,不同的项目组开发不同的工程。maven-dao 工程开发完毕,发布到私服maven-service 从私服下载 dao。

公司在自己的局域网内搭建自己的远程仓库服务器,称为私服, 私服服务器即是公司内部的 maven 远程仓库, 每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。

私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载。

4.1.2 Nexus介绍

Nexus 是 Maven 仓库管理器, 通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强大的仓库管理功能,构件搜索功能等。

4.2 maven 私服实战

4.2.1 nexus安装

解压资料中的nexus-2.12.0-01-bundle.zip文件,存放到一个不含中文的目录下。

查看conf文件下的nexus.properties配置文件,可以修改对应的配置

2 nexus的安装命令:使用管理员运行cmd命令窗口,切换目录nexus\nexus-2.12.0-01\bin目录下,执行nexus.bat install进行安装。执行nexus.bat start 启动服务 执行nexus.bat stop停止服务。

3 nexus的卸载命令:使用管理员运行cmd命令窗口,切换目录nexus\nexus-2.12.0-01\bin目录下,执行nexus.bat uninstall进行卸载

4 访问图形化界面:打开浏览器,输入http://localhost:端口号/nexus访问

5 点击log in,进行登录。用户名:admin 密码:admin123

4.2.2 nexus 仓库类型

nexus提供了不同的仓库类型

1 hosted,宿主仓库, 部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部分, Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库
2 proxy,代理仓库, 用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私服自动去中央仓库下载 jar 包或者插件。
3 group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓库组。Group仓库组也是可以自己进行定制的。

4 virtual(虚拟):兼容 Maven1 版本的 jar 或者插件

4.2.3 将项目发布到私服

需要在客户端即部署要部署的工程电脑上配置 maven 环境,并修改
settings.xml 文件, 配置连接私服的用户和密码 。

此用户名和密码用于私服校验,因为私服需要知道上传的账号和密码是否和私服中的账号和密码一致。

在servers节点下进行配置

<!-- 定义稳定版本的id名称,用户名密码 -->
<server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
</server>
<!-- 定义开发版本的id名称,用户名密码 -->
<server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
   </server>

配置项目 pom.xml,配置私服仓库的地址,本公司的自己的 jar 包会上传到私服的宿主仓库,根据工程的版本号决定上传到哪个宿主仓库,如果版本为 release 则上传到私服的 release 仓库,如果版本为snapshot 则上传到私服的 snapshot 仓库。

<distributionManagement>
    <repository>
        <id>releases</id>
        <url>http://localhost:8079/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://localhost:8079/nexus/content/repositories/snapshots/</url>
 </snapshotRepository>
</distributionManagement>

 

注意:这里的 id 标签的值要和 settings.xml配置文件中的id值保持一致。

在该工程中执行deploy命令,发布项目到私服上。

查看私服结果

可以发布RELEASES稳定版本的jar包到私服。

查看私服结果

4.2.4 从私服下载jar包

在settings.xml配置文件配置私服的镜像文件

<mirror>
		<!-- id名称 -->
		<id>nexusmaven</id>
		<!-- 表示拦截所有的请求,都重定向到私服,从私服下载jar包,私服没有再去中央仓库下载 -->
		<mirrorOf>*</mirrorOf>  
		<name>nexus maven</name>
		<!-- 私服的组地址 -->
<url>http://localhost:8079/nexus/content/groups/public/</url>      
	</mirror>

进行测试

先把自己的某个项目发布到私服中,然后删除掉本地仓库中的jar包,再使用其他项目去依赖该jar包,查看是否从私服中下载。

在其他项目中引入该坐标依赖。

<!--依赖demo1这个项目-->
<dependencies>
    <dependency>
        <groupId>cn.tx.maven</groupId>
        <artifactId>txmaven_demo10413</artifactId>
        <version>1.0-RELEASES</version>
    </dependency>
</dependencies>

还有一种方式,可以配置仓库的方式,可以修改自己项目的pom配置文件,添加仓库的配置。

<repositories>
    <repository>
        <id>nexus</id>
        <name>nexusmaven</name>
        <url>http://localhost:8079/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>public</id>
        <url>http://localhost:8079/nexus/content/groups/public/</url>
        <name>pluginRepositories</name>
    </pluginRepository>
</pluginRepositories>

上面的方式不是特别的理想,需要在每一个项目的pom文件中都添加相同的配置,比比较麻烦。可以在settings.xml配置文件中添加配置,完成统一的设置。

<!-- 下载jar包配置 -->
	<profile> 
		<!--profile的id -->
		<id>dev</id>
		<repositories>
			<repository> <!--仓库id,repositories可以配置多个仓库,保证id不重复 -->
				<id>nexus</id> <!--仓库地址,即nexus仓库组的地址 -->
				<url>http://localhost:8079/nexus/content/groups/public/</url> <!--是否下载releases构件 -->
				<releases>
					<enabled>true</enabled>
				</releases> <!--是否下载snapshots构件 -->
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
		</repositories>
		<pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也
需要从私服下载插件 -->
			<pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
				<id>public</id>
				<name>Public Repositories</name>
				<url>http://localhost:8079/nexus/content/groups/public/</url>
			</pluginRepository>
		</pluginRepositories>
	</profile>

激活配置

<activeProfiles>
		<activeProfile>dev</activeProfile>
	</activeProfiles>

进行测试

4.2.5 第三方jar包发布到私服

把jar包安装到本地仓库

mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile=fastjson-1.1.37.jar -Dpackaging=jar

把jar包上传到私服

先在settings.xml配置文件中配置用户名密码

<server>
<id>thirdparty</id>
<username>admin</username>
 <password>admin123</password>
</server>

上传到私服

mvn deploy:deploy-file -DgroupId=com.alibaba
-DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=fastjson-1.1.37.jar -Durl=http://localhost:8079/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty

标签:项目管理,私服,jar,仓库,maven,nexus,localhost
From: https://blog.csdn.net/weixin_69039908/article/details/136782741

相关文章

  • Maven学习总结
    学习课程视频链接:尚硅谷新版Maven教程(高效入门maven,上手又快又稳)_哔哩哔哩_bilibili 尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发_哔哩哔哩_bilibili 以下是一些零碎的知识点总结:maven的gvap属性:groupid:com.{公司/BU}.业务线.{子业务线},最多4级......
  • 修改Maven配置项
    0.打开Maven安装目录>conf>settings.xml1.修改本地仓库地址(默认是Default:${user.home}/.m2/repository也就是用户目录下的/.m2/repository下)修改为自己的本地仓库地址<localRepository>xxx</localRepository>2.了解servers当你将仓库发布到远程仓库时,在这里设置s......
  • 软件项目管理资料完整版(规格说明书,详细设计,测试计划,验收报告)
       前言:在软件开发过程中,文档资料是非常关键的一部分,它们帮助团队成员理解项目需求、设计、实施、测试、验收等各个环节,确保项目的顺利进行。以下是针对您提到的各个阶段的文档资料概述:所有资料获取:点击获取开发阶段需求规格说明书:详细描述了软件系统的功能需求、非......
  • 软件项目管理资料汇总(规格说明书、详细设计、测试计划、验收报告)
      前言:在软件开发过程中,文档资料是非常关键的一部分,它们帮助团队成员理解项目需求、设计、实施、测试、验收等各个环节,确保项目的顺利进行。以下是针对您提到的各个阶段的文档资料概述:所有资料获取:点击获取开发阶段需求规格说明书:详细描述了软件系统的功能需求、非功......
  • [maven] maven settings.xml/pom.xml之repositories/pluginRepositories元素
    0序repositories针对项目本身的【JAR依赖】,通过repositories进行自定义配置。pluginRepositories针对的是maven命令需要的【插件依赖】地址(比如clean、install都是maven的插件),通过pluginRepositories进行自定义配置。如果只配置了repositories,则:打包时,默认的【插件依赖】......
  • maven依赖项爆红解决方法(详细)
    因为解决爆红要反复下载依赖项进行多次尝试,所以maven下载速度慢的小伙伴可以参考这篇文章解决maven依赖下载很慢的问题https://blog.csdn.net/m0_73642416/article/details/136751868 1.尝试删除旧的依赖的缓存有时候依赖问题可能是由于本地仓库缓存中的文件损坏或不一致......
  • maven高级21_基于maven构建SSM工程3
    一、需求描述本案例基于maven构建SSM(Spring+SpringMVC+Mybatis)工程,通过maven坐标进行依赖管理。最终实现根据id查询商品信息的功能。二、实现步骤分析1、数据库环境搭建​①创建数据库ssmtest ​②创建商品表itemCREATETABLE`item`(`id`int(11)NOTNULLa......
  • maven高级21_maven的依赖冲突2
    一、什么是maven的依赖传递在maven中,依赖是可以传递的,假设存在三个项目,分别是项目A,项目B以及项目C。假设C依赖B,B依赖A,那么我们可以根据maven项目依赖的特征不难推出项目C也依赖A。 通过上面的图可以看到,我们的web项目直接依赖了spring-webmvc,而spring-webmvc依赖了......
  • 授之以渔不是授之以鱼-docker maven 构建java工程
    原始的maven构建语句mvncleaninstall-Dmaven.test.skip=true现在需要在一台新的安装有docker的机子上构建,要求用jdk17和maven3.9,这台机子较旧,只有jdk8和jdk11,但是有安装docker,在不动构建机器现有软件的情况下构建。dockerrun\--rm\-v$(pwd):$(pwd)......
  • 常见问题解决 --- idea与maven使用常识
    1.拿到项目代码后先要知道使用了哪些技术和工具。比如使用的是idea、eclipse还是maven创建的项目,使用什么编程语言,使用什么项目目录结构等等2.如何用maven创建的项目必然有pom.xml,每次修改pom文件后必须重新加载。3.如果修改代码后还是报错,尝试使用clean清除编译缓存再同步maven......