Maven-关于compile/install和local repository的理解

本文通过实例介绍了Maven在处理多模块项目时的工作原理,特别是如何通过不同命令(如compile与install)来正确地管理和编译项目依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景说明:

工作的项目是一个多模块Maven工程,平时增量时需要使用命令对关联的模块进行编译,初步检查代码有没有错,但是最近一编译就报一大堆import找不到或者找不到符号的问题,这个问题比较常见,网上一搜也有很多人问。

因为最初对Maven没什么概念(其实现在也一样),编译的命令被我从 install 改成了 compile ,因为这样更快一些。。但之前都一直很正常,现在突然就编译各种乱七八糟的错误,于是各种百度google查查,有人说是jdk的问题,有人说是文件编码问题,但查了之后发现都不是,最终在一篇帖子的回复里看到了:

 

看到这个的时候,才"恍然大悟" pom 文件里配置的那些依赖到底是怎么用的,之前只是从表面上看出,这个模块需要依赖其他的模块,但不知道 compile、install 环节都是怎么利用这些模块的,加上和BOSS聊天的时候,听到他提到"本地仓库"四个字,瞬间感觉明白了什么,所以在本机做了以下的测试来加深一下Maven编译多模块项目时的简单原理。

 

 

新建Maven工程:

然后去修改common模块的pom文件,添加对utils的依赖:

 

[html]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. <dependency>  
  2.       <groupId>com.mxm</groupId>  
  3.       <artifactId>Utils</artifactId>  
  4.       <version>0.0.1-SNAPSHOT</version>  
  5.       <scope>compile</scope>  
  6. </dependency>  


编译测试:

 

直接对common模块编译:

报错很明显,没有utils模块的jar包

 

对utils模块使用compile命令:

成功,但这时是不会把项目编译成jar包放在本地仓库中的。

 

对utils模块使用install命令:

这时就可以看到在本地仓库中同步了jar包。

 

这时再对common模块编译:

通过,这时把本地仓库下的Utils-0.0.1-SNAPSHOT.jar删掉,再编译依旧会报错。

 

结论:

所以,验证之后对Maven编译和多模块间的依赖有了理解,虽然这可能是Maven本身的基础知识,但因为一直对Maven没有研究,只是凭pom文件中的配置简单个人理解,造成了编译出错这种比较低级的问题。。

"C:\Program Files\Java\jdk1.8.0_202\bin\java.exe" -Dmaven.multiModuleProjectDirectory=C:\JavaProject\vehicle "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\lib\idea_rt.jar=58138:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\plugins\maven\lib\maven3\boot\plexus-classworlds-2.6.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\plugins\maven\lib\maven3\boot\plexus-classworlds.license" org.codehaus.classworlds.Launcher -Didea.version=2022.1.2 -s C:\Maven\apache-maven-3.9.9\conf\settings.xml -Dmaven.repo.local=C:\Maven\apache-maven-3.9.9\repository dependency:tree -Dincludes=org.apache.poi [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] msc-vehicle [pom] [INFO] msc-vehicle-client [jar] [INFO] msc-vehicle-common [jar] [INFO] msc-vehicle-domain [jar] [INFO] msc-vehicle-config [jar] [INFO] msc-vehicle-infrastructure [jar] [INFO] msc-vehicle-app [jar] [INFO] msc-vehicle-adapter [jar] [INFO] start [jar] [INFO] [INFO] ---------------------< com.zeekrlife:msc-vehicle >---------------------- [INFO] Building msc-vehicle 1.0-SNAPSHOT [1/9] [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle --- [INFO] [INFO] ------------------< com.zeekrlife:msc-vehicle-client >------------------ [INFO] Building msc-vehicle-client 1.0-SNAPSHOT [2/9] [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle-client --- [INFO] [INFO] ------------------< com.zeekrlife:msc-vehicle-common >------------------ [INFO] Building msc-vehicle-common 1.0-SNAPSHOT [3/9] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/github/dsc-cmt/cmt-statemachine/1.3.2-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/github/dsc-cmt/cmt-statemachine/1.3.2-SNAPSHOT/maven-metadata.xml (998 B at 3.2 kB/s) [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle-common --- [INFO] com.zeekrlife:msc-vehicle-common:jar:1.0-SNAPSHOT [INFO] +- com.zeekr.cloud:flycloud-common:jar:7.17.0-RELEASE:compile [INFO] | +- org.apache.poi:poi:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile [INFO] \- com.alibaba:easyexcel:jar:3.3.2:compile [INFO] \- com.alibaba:easyexcel-core:jar:3.3.2:compile [INFO] \- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile [INFO] [INFO] ------------------< com.zeekrlife:msc-vehicle-domain >------------------ [INFO] Building msc-vehicle-domain 1.0-SNAPSHOT [4/9] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/msc-vehicle-client/1.0-SNAPSHOT/maven-metadata.xml Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/msc-vehicle-common/1.0-SNAPSHOT/maven-metadata.xml [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle-domain --- [INFO] com.zeekrlife:msc-vehicle-domain:jar:1.0-SNAPSHOT [INFO] \- com.zeekrlife:msc-vehicle-common:jar:1.0-SNAPSHOT:compile [INFO] +- com.zeekr.cloud:flycloud-common:jar:7.17.0-RELEASE:compile [INFO] | +- org.apache.poi:poi:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile [INFO] \- com.alibaba:easyexcel:jar:3.3.2:compile [INFO] \- com.alibaba:easyexcel-core:jar:3.3.2:compile [INFO] \- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile [INFO] [INFO] ------------------< com.zeekrlife:msc-vehicle-config >------------------ [INFO] Building msc-vehicle-config 1.0-SNAPSHOT [5/9] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-parent/7.16.4-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-parent/7.16.4-SNAPSHOT/maven-metadata.xml (609 B at 9.4 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-boot-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-boot-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml (620 B at 9.1 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml (615 B at 8.5 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-dependencies-parent/7.16.4-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-dependencies-parent/7.16.4-SNAPSHOT/maven-metadata.xml (622 B at 7.2 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-commons-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-commons-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml (623 B at 9.9 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-plugin-microservice-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/cloud/flycloud-plugin-microservice-dependencies/7.16.4-SNAPSHOT/maven-metadata.xml (635 B at 10 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/nimbusds/lang-tag/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/nimbusds/lang-tag/maven-metadata.xml (667 B at 2.7 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/nimbusds/nimbus-jose-jwt/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/nimbusds/nimbus-jose-jwt/maven-metadata.xml (11 kB at 50 kB/s) [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle-config --- [INFO] com.zeekrlife:msc-vehicle-config:jar:1.0-SNAPSHOT [INFO] +- com.zeekrlife:msc-vehicle-common:jar:1.0-SNAPSHOT:compile [INFO] | \- com.alibaba:easyexcel:jar:3.3.2:compile [INFO] | \- com.alibaba:easyexcel-core:jar:3.3.2:compile [INFO] | \- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile [INFO] \- com.zeekr.cloud:flycloud-common:jar:7.17.0-RELEASE:compile [INFO] +- org.apache.poi:poi:jar:5.2.2:compile [INFO] \- org.apache.poi:poi-ooxml:jar:5.2.2:compile [INFO] \- org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile [INFO] [INFO] --------------< com.zeekrlife:msc-vehicle-infrastructure >-------------- [INFO] Building msc-vehicle-infrastructure 1.0-SNAPSHOT [6/9] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/msc-vehicle-domain/1.0-SNAPSHOT/maven-metadata.xml Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/msc-vehicle-config/1.0-SNAPSHOT/maven-metadata.xml Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/overseas/commons/1.4.0-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/overseas/commons/1.4.0-SNAPSHOT/maven-metadata.xml (782 B at 13 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/overseas/parent/1.4.0-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/overseas/parent/1.4.0-SNAPSHOT/maven-metadata.xml (607 B at 7.4 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-starter-parent/1.0.0-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-starter-parent/1.0.0-SNAPSHOT/maven-metadata.xml (610 B at 5.3 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-web-boot-starter/1.0.0-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-web-boot-starter/1.0.0-SNAPSHOT/maven-metadata.xml (1.2 kB at 19 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-web/1.0.0-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-web/1.0.0-SNAPSHOT/maven-metadata.xml (1.2 kB at 24 kB/s) Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-data/1.0.0-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/seaking-data/1.0.0-SNAPSHOT/maven-metadata.xml (1.2 kB at 19 kB/s) [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle-infrastructure --- [INFO] com.zeekrlife:msc-vehicle-infrastructure:jar:1.0-SNAPSHOT [INFO] +- com.zeekr.cloud:flycloud-common:jar:7.17.0-RELEASE:compile [INFO] | +- org.apache.poi:poi:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile [INFO] \- cn.afterturn:easypoi-spring-boot-starter:jar:4.4.0:compile [INFO] \- cn.afterturn:easypoi-web:jar:4.4.0:compile [INFO] \- cn.afterturn:easypoi-base:jar:4.4.0:compile [INFO] \- org.apache.poi:poi-ooxml-schemas:jar:4.1.1:compile [INFO] [INFO] -------------------< com.zeekrlife:msc-vehicle-app >-------------------- [INFO] Building msc-vehicle-app 1.0-SNAPSHOT [7/9] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/msc-vehicle-infrastructure/1.0-SNAPSHOT/maven-metadata.xml Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/ucd/eisenhower-api/2.7.0-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekr/ucd/eisenhower-api/2.7.0-SNAPSHOT/maven-metadata.xml (1.2 kB at 18 kB/s) [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle-app --- [INFO] com.zeekrlife:msc-vehicle-app:jar:1.0-SNAPSHOT [INFO] +- com.zeekrlife:msc-vehicle-infrastructure:jar:1.0-SNAPSHOT:compile [INFO] | \- com.zeekr.cloud:flycloud-common:jar:7.17.0-RELEASE:compile [INFO] | +- org.apache.poi:poi:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile [INFO] \- com.alibaba:easyexcel:jar:3.3.2:compile [INFO] \- com.alibaba:easyexcel-core:jar:3.3.2:compile [INFO] \- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile [INFO] [INFO] -----------------< com.zeekrlife:msc-vehicle-adapter >------------------ [INFO] Building msc-vehicle-adapter 1.0-SNAPSHOT [8/9] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/msc-vehicle-app/1.0-SNAPSHOT/maven-metadata.xml [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ msc-vehicle-adapter --- [INFO] com.zeekrlife:msc-vehicle-adapter:jar:1.0-SNAPSHOT [INFO] \- com.zeekrlife:msc-vehicle-app:jar:1.0-SNAPSHOT:compile [INFO] +- com.zeekrlife:msc-vehicle-infrastructure:jar:1.0-SNAPSHOT:compile [INFO] | \- com.zeekr.cloud:flycloud-common:jar:7.17.0-RELEASE:compile [INFO] | +- org.apache.poi:poi:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml:jar:5.2.2:compile [INFO] | \- org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile [INFO] \- com.alibaba:easyexcel:jar:3.3.2:compile [INFO] \- com.alibaba:easyexcel-core:jar:3.3.2:compile [INFO] \- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile [INFO] [INFO] ------------------------< com.zeekrlife:start >------------------------- [INFO] Building start 1.0-SNAPSHOT [9/9] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/msc-vehicle-adapter/1.0-SNAPSHOT/maven-metadata.xml Downloading from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/dynamic-update-starter/1.0.3-SNAPSHOT/maven-metadata.xml Downloaded from zeekr-public: http://devops-maven.zeekrlife.com/repository/maven-public/com/zeekrlife/dynamic-update-starter/1.0.3-SNAPSHOT/maven-metadata.xml (999 B at 14 kB/s) [INFO] [INFO] --- maven-dependency-plugin:3.3.0:tree (default-cli) @ start --- [INFO] com.zeekrlife:start:jar:1.0-SNAPSHOT [INFO] +- com.zeekrlife:msc-vehicle-adapter:jar:1.0-SNAPSHOT:compile [INFO] | \- com.zeekrlife:msc-vehicle-app:jar:1.0-SNAPSHOT:compile [INFO] | \- com.alibaba:easyexcel:jar:3.3.2:compile [INFO] | \- com.alibaba:easyexcel-core:jar:3.3.2:compile [INFO] | \- org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile [INFO] \- com.zeekrlife:msc-vehicle-config:jar:1.0-SNAPSHOT:compile [INFO] \- com.zeekr.cloud:flycloud-common:jar:7.17.0-RELEASE:compile [INFO] +- org.apache.poi:poi:jar:5.2.2:compile [INFO] \- org.apache.poi:poi-ooxml:jar:5.2.2:compile [INFO] \- org.apache.poi:poi-ooxml-lite:jar:5.2.2:compile [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for msc-vehicle 1.0-SNAPSHOT: [INFO] [INFO] msc-vehicle ........................................ SUCCESS [ 0.989 s] [INFO] msc-vehicle-client ................................. SUCCESS [ 0.039 s] [INFO] msc-vehicle-common ................................. SUCCESS [ 2.312 s] [INFO] msc-vehicle-domain ................................. SUCCESS [ 0.209 s] [INFO] msc-vehicle-config ................................. SUCCESS [ 2.281 s] [INFO] msc-vehicle-infrastructure ......................... SUCCESS [ 1.369 s] [INFO] msc-vehicle-app .................................... SUCCESS [ 0.447 s] [INFO] msc-vehicle-adapter ................................ SUCCESS [ 0.215 s] [INFO] start .............................................. SUCCESS [ 0.302 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.836 s [INFO] Finished at: 2025-07-16T12:49:35+08:00 [INFO] ------------------------------------------------------------------------ 进程已结束,退出代码0
最新发布
07-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值