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

如图:

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 epository

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

参考

https://blog.csdn.net/chenbhhh/article/details/80737106?utm_source=blogkpcl5

https://blog.csdn.net/qq_15237993/article/details/72540928

新增一个maven build

其中goals如下:

install:install-file -Dfile=C:UsersThinkpadDownloadsodata-example-masterexample-model argetexample-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.csdn.net/yueloveme/article/details/80104808

原文地址:https://www.cnblogs.com/Bruce_H21/p/9871128.html