Maven中的依賴:包括jar包依賴和項目依賴

在使用maven之前,對於把一個項目拆分爲多個工程的情況,需要手工在build path中設置Projects 



在使用了maven之後,就不需要手工設置,只要在pom中設置了dependency,m2eclipse插件會自動設置爲依賴工程,pom文件: 

Xml代碼 

 收藏代碼

  1. <dependency>  
  2.             <groupId>${project.groupId}</groupId>  
  3.             <artifactId>task-common</artifactId>  
  4.             <version>${project.version}</version>  
  5.         </dependency>  


效果如下圖: 

 

不過我今天遇到一個情況,就是明明已經在pom中配置了依賴,但是m2eclipse就是不設置依賴工程,最後發現原來是需要在m2eclipse提供的右鍵菜單中做一個操作: 

選擇Maven-->Enable Workspace Resolution 



打開這個選項以後,在Workspace中配置的工程纔會作爲依賴工程,如果disable之後,則會被視爲靜態的依賴jar包 

效果如圖: 

  對比之前的效果圖,可以看到,task-common已經不再是依賴工程,取而代之,是一個靜態的task-common.jar  這樣有2個問題,一個是必須先把task-common.jar放入本地倉庫或者遠程倉庫,否則即使eclipse中有task-common工程,還是會報錯:  Missing artifact com.huawei.inoc.wfm.task:task-common:jar:0.0.1-SNAPSHOT:compile  另一個問題是,以靜態jar包的方式依賴的話,那麼task-common裏的改動,就無法第一時間在task-sla裏體現了,所以還是應該把工程依賴的選項打開。  不過這樣操作以後,經常會發生一個怪異的現象:此時用命令行進行maven構建是沒問題的,但是工程在eclipse裏顯示紅叉,需要設置Java Compiler重新編譯一次才能解決。我沒找到爲什麼,懷疑是m2eclipse的一個BUG