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\repository

所以 必須把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:\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.csdn.net/yueloveme/article/details/80104808

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM