当前位置: 首页 > news >正文

SpringBoot多工程项目微服务install时如何不安装到本地仓库

在 Spring Boot 微服务项目中,比如各业务微服务模块由于不存在相互依赖度的问题,因此执行maven install时无需安装到本地仓库,但仍然需要参与构建(如 mvn compile 或 mvn package)。公共模块(如​​辅助工具模块、实体模块、通用模块​​等)既要参与构建也需要被安装到 Maven 本地仓库(~/.m2/repository)。

方法 1:使用 maven-install-plugin 的 skip 配置​​

在 pom.xml 中配置 maven-install-plugin,并设置 skip=true:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifactId><version>3.1.0</version><configuration><skip>true</skip> <!-- 跳过 install 阶段 --></configuration></plugin></plugins>
</build>

方法 2:使用 Maven 属性动态控制​​

结合 Maven 属性(如 -DskipInstall)动态控制是否跳过安装:
在 pom.xml 中配置:

<properties><skip.install>false</skip.install> <!-- 默认不跳过 -->
</properties><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifactId><version>3.1.0</version><configuration><skip>${skip.install}</skip> <!-- 通过属性控制 --></configuration></plugin></plugins>
</build>

通过命令行动态跳过:

mvn install -Dskip.install=true  # 跳过安装
mvn install                      # 正常安装

方法 3:使用 maven-deploy-plugin 跳过部署​​

如果目标是跳过部署到远程仓库(如 Nexus),可以配置 maven-deploy-plugin:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>3.1.0</version><configuration><skip>true</skip> <!-- 跳过 deploy 阶段 --></configuration>
</plugin>

方法 4:通过 Profile 按环境控制​​

通过 Maven Profile 区分不同环境:

<profiles><profile><id>skip-install</id><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifactId><configuration><skip>true</skip></configuration></plugin></plugins></build></profile>
</profiles>

通过命令行激活:

mvn install -Pskip-install  # 跳过安装

注意事项​​

1、​​模块间依赖​​:如果其他模块依赖该模块,跳过安装可能导致编译失败。此时建议:
改用 ​​Maven 聚合项目​​(),在父 POM 中统一管理。
通过 mvn install -pl -am 仅安装特定模块及其依赖。

2、​​替代方案​​:如果只是不想污染本地仓库,可以:
使用 mvn package 只打包不安装。
通过 Docker 或 CI/CD 直接构建镜像,避免本地安装。

相关文章:

  • word模板填充导出-(支持word导出、pdf导出)
  • Langchain+文本摘要-refine
  • 芯片软错误概率探究:基于汽车芯片安全设计视角
  • 理解数据库存储以及查询(集合)
  • 数据科学与计算
  • 免疫细胞靶点“破局战”:从抗体到CAR-T,自免疾病治疗的3大技术突破
  • 【算法学习】哈希表篇:哈希表的使用场景和使用方法
  • ES使用之查询方式
  • 用Power shell脚本批量发布rdl文件到SQL Server Reporting Service
  • Android Framework框架与启动过程初识一
  • uniapp如何获取安卓原生的Intent对象
  • 分布式-redisson
  • 关于 live555延迟优化之缓存区优化“StreamParser::afterGettingBytes() warning: read”” 的解决方法
  • PLC与工业电脑:有什么区别?
  • 精益数据分析(35/26):SaaS商业模式关键指标解析
  • AI生成Flutter UI代码实践(一)
  • 【MongoDB篇】MongoDB的文档操作!
  • 运维打铁: 存储方案全解析
  • 【MongoDB篇】MongoDB的索引操作!
  • 文章记单词 | 第52篇(六级)
  • 北京亦庄启动青年人才创新创业生态示范区
  • 云南铁路:打造“铁路+金融+产业”融合发展生态
  • 金砖国家外长会晤发表主席声明,强调南方国家合作
  • 南部战区位南海海域进行例行巡航
  • 邮储银行一季度净赚超252亿降逾2%,营收微降
  • 三大白电巨头去年净利近900亿元:美的持续领跑,格力营收下滑