maven的命令-deploy

tech2025-11-16  3

maven deploy命令的含义

maven deploy命令是将你负责的模块发布到你配置的仓库位置。

多模块开发中使用deploy命令

配置仓库位置,一般公司都会搭建自己的公司私服,用于加速获取jar以及管理公司的一些技术沉淀工具包之类的

<distributionManagement> <repository> <!--稳定版本不会频繁修改的jar的存储位置--> <id>maven-release</id> <url>http://XXXX/repository/maven-releases/</url> </repository> <snapshotRepository> <!--快照版本--> <id>maven-snapshots</id> <url>http://XXXX/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>

Maven中的仓库分为两种,Snapshot快照仓库和Release发布仓库。Snapshot快照仓库用于保存开发过程中的不稳定版本,Release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom.xml文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写),如下所示:

<groupId>com.xupp</groupId> <artifactId>test</artifactId> <version>0.1-SNAPSHOT</version> <packaging>jar</packaging>

delopy会更具你定义的版本发布到不同的位置。

多人开发依赖和deploy的使用

2020年微服务现在已经是一个公司基本必选的服务架构了,一个项目会被分成多个,每一个人会负责一个模块的开发,有些人就会分到公共组件或者公共api的开发。

比如现在a开发一个公共的base包,定义如下:

<groupId>com.a</groupId> <artifactId>base</artifactId> <version>0.1-SNAPSHOT</version> <packaging>jar</packaging>

上面定义程快照版本,每一次的deploy都会把当前的时间作为版本的一部分,如打包上去的可能是下面这样的jar,存放在私服的Snapshot快照仓库位置。

base-0.0.1-20200903.060612-43.jar(版本的后面加上了当前的时间)

现在b模块开发其中系统中的一个业务模块,那么它需要使用这个base模块中的一些工具类,他只要在pom做如下定义

<dependency> <groupId>com.a</groupId> <artifactId>base</artifactId> <version>0.1-SNAPSHOT</version> </dependency>

那么每一次base有更新进行deploy,只要使用的地方重新reimport进行拉取,会在本地仓库位置拉取快照仓库最新的快照版本。并且进行使用。具体的表现如下:

最新回复(0)