Maven环境下面多项目之间的引用

本文详细介绍了在使用Maven构建多模块项目时,如何解决本地仓库中缺失依赖的问题,特别是当一个模块依赖于另一个刚编译的模块时。通过将编译后的JAR包手动安装到本地仓库,确保所有模块间依赖正确解析,最终实现项目成功构建。

如图:

https://github.com/sdl/odata-example  sdl OData例子包含了4个项目,下载到本地后编译。发现只有model项目是可以编译过去了。其他几个暂时编译不过。

提示:Could not find artifact,

原因如下:例如编译examble-datasource就会报如下错误,首先examble-datasource添加了对examble-model的引用,但是examble-model引用需要从maven的本地仓库中寻找。在我们本地仓库中一般情况不会有刚编译项目的jar包的。正常情况我们是编译成jar包,只会放在target目录里面了。

因为编译过程一般是

第一步,maven clean

第二步, 做个目标为:clean tomcat:redeploy的maven build,然后执行maven build。

这样target目录就会有对应的jar包了。

但是即使这样 examble-datasource编译的时候还是会报错。即便是examble-model的jar已经生成了也没用。因为examble-datasource调用的时候是调用Maven本地仓库里面的examble-model引用。

maven本地仓库的目录一般在下面 用户名\.m2\repository

所以 必须把example-model jar包添加到本地仓库。

参考

https://blog.youkuaiyun.com/chenbhhh/article/details/80737106?utm_source=blogkpcl5

https://blog.youkuaiyun.com/qq_15237993/article/details/72540928

新增一个maven build

其中goals如下:

install:install-file -Dfile=C:\Users\Thinkpad\Downloads\odata-example-master\example-model\target\example-model-1.0-SNAPSHOT.jar -DgroupId=com.sdl -DartifactId=example-model -Dversion=1.0-SNAPSHOT -Dpackaging=jar

其中的含义,如果example-datasource需要添加example-model的引用,则需要在POM文件中添加对model jar的引用

  <dependency>
          <groupId>com.sdl</groupId>
          <artifactId>example-model</artifactId>
          <version>1.0-SNAPSHOT</version>
   </dependency>

那么Maven 安装 JAR 包的命令是:
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar

 这样把example-model的的jar包添加到本地仓库后,在编译example-datasource发现可以通过了。

 

最后,直接maven build OData-example成功!大功告成。

在IDEA下面好像会简单一些,

可以参考:https://blog.youkuaiyun.com/yueloveme/article/details/80104808

 

转载于:https://www.cnblogs.com/Bruce_H21/p/9871128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值