天天看點

maven遇到的問題

-------  nexus 加索引

 點選Administration菜單下面的Repositories,将這三個倉庫Apache Snapshots,Codehaus Snapshots,MavenCentral的configuration下的remote repository access 下的 Download Remote Indexes修改為true。然後在這三個倉庫上分别右鍵,選擇Re-index,這樣Nexus就會去下載下傳遠端的索引檔案。 

(這裡注意:reindex後,nexus隻會把索引下載下傳下來,而不是jar本身。隻有當你運作項目時,才會真正根據索引下載下傳相應的jar并放在 C:\Documents and Settings\localUser\sonatype-work\nexus\storage\ 下面。--當然同時,這些jar 也會下載下傳到本地機器的.m2 工作倉庫下。)

------- maven 生成eclipse 項目時報的錯

Java代碼  

maven遇到的問題
  1. [INFO] Resource directory's path matches an existing source directory. Resources  
  2. will be merged with the source directory src/main/resources  
  3. [INFO] ------------------------------------------------------------------------  
  4. [ERROR] BUILD ERROR  

 可能會産生以上錯誤  在pom 檔案中巴maven-eclipse-plugin 這樣引入:

Java代碼  

maven遇到的問題
  1. <plugin>  
  2.                 <groupId>org.apache.maven.plugins</groupId>  
  3.                 <artifactId>maven-eclipse-plugin</artifactId>  
  4.                 <version>2.6</version>  
  5.                 <configuration>  
  6.                     <wtpmanifest>true</wtpmanifest>  
  7.                     <wtpapplicationxml>true</wtpapplicationxml>  
  8.                     <wtpversion>2.0</wtpversion>  
  9.                 </configuration>  
  10.             </plugin>  

 搞定。  (之前的問題是由于plugin 的版本引起的 改成2.6 就行了。)

-------   maven 部署到weblogic 上時可能出現記憶體溢出

Java代碼  

maven遇到的問題
  1. [INFO] Java heap space  
  2. [INFO] ------------------------------------------------------------------------  
  3. [INFO] Trace  
  4. java.lang.OutOfMemoryError: Java heap space  

 解決方案:在環境變量設定 MAVEN_OPTS=-Xms128m -Xmx512m     ---- 啊? 還有錯麼? 那就是機器記憶體不夠啦 重新開機一下吧.....

----------   maven weblogic 插件的所有操作

http://maven-plugins.sourceforge.net/maven-weblogic-plugin/goals.html

----------    關于M2_REPO

這個問題還糾結了一陣子,記得以前配置的時候在eclipse中加M2_REPO變量後就能把倉庫的jar加到eclipse中,但突然不好使了,後來不得不靠m2eclipse插件幫忙。 今天突然開竅.. 沒在機器環境變量裡配M2_REPO變量.....配置上後問題得以解決(解除安裝掉m2eclipse..)

----------    maven 解決嵌套依賴産生的沖突

比如說:jbpm 的依賴裡面又做了對hibernate 的依賴 其pom裡面引入了hibernate-core 等hibernate 的包,而項目又不能因為用jbpm對hibernate 的引入而删除本身項目對hibernate 的引入,是以為了避免重複引入造成的沖突,隻能把jbpm對hibernate 的引入删去,這裡隻需要對pom 進行一個exclusion 就行了! 首先打開相應目錄下的jbpm 的pom 看看其對hibernate 引入的groupId 和 artifactId 然後再在相應的jar 上面移除這兩個依賴 寫法如下:

Java代碼  

maven遇到的問題
  1. <dependency>  
  2.             <groupId>org.jbpm.jbpm4</groupId>  
  3.             <artifactId>jbpm-pvm</artifactId>  
  4.             <version>4.3</version>  
  5.             <exclusions>  
  6.                 <exclusion>  
  7.                     <groupId>org.hibernate</groupId>  
  8.                     <artifactId>hibernate-core</artifactId>  
  9.                 </exclusion>  
  10.                 <exclusion>  
  11.                     <groupId>javassist</groupId>  
  12.                     <artifactId>javassist</artifactId>  
  13.                 </exclusion>  
  14.             </exclusions>  
  15.         </dependency>  

這樣  移除了jbpm 下對hibernate 和javassist 的依賴  為了避免沖突。

----------    修改nexus工作目錄

參照:http://marshal.easymorse.com/archives/1195

----------    用maven打包 maven war   (mvn war:war) 插件。

Java代碼  

maven遇到的問題
  1. <plugin>  
  2.             <groupId>org.apache.maven.plugins</groupId>  
  3.             <artifactId>maven-war-plugin</artifactId>  
  4.             <version>2.1-alpha-1</version>  
  5.             <configuration>  
  6.                 <!--  
  7.                     打包之前過濾掉不想要被打進 .war包的jar,注意:這個地方,本來路徑應該是  
  8.                     WEB-INF/lib/anaalyzer-2.0.4.jar,但是經過多次試驗,不能這樣,至于咋回事兒,搞不清楚。。經多方查證均無結果  
  9.                     暫且這樣吧,雖然顯得很醜陋,但是總能解決問題吧  
  10.                 -->  
  11.                 <warSourceExcludes>*/lib/analyzer-2.0.4.jar</warSourceExcludes>  
  12.                 <webResources>  
  13.                     <resource>  
  14.                         <!-- 元配置檔案的目錄,相對于pom.xml檔案的路徑 -->  
  15.                         <directory>src/main/webapp/WEB-INF</directory>  
  16.                         <!-- 是否過濾檔案,也就是是否啟動auto-config的功能 -->  
  17.                         <filtering>true</filtering>  
  18.                         <!-- 目标路徑 -->  
  19.                         <targetPath>WEB-INF</targetPath>  
  20.                     </resource>  
  21.                 </webResources>  
  22.             </configuration>  
  23.         </plugin>  

 ---其實執行mvn:package就可以了 不用在pom 中配這麼多..  maven 會把打的war包放在項目目錄的target目錄下。 而且我使用mvn  war:war 時 打的包出問題了 不知道為啥.. 後來用mvn package 就沒問題。不知道大家有沒有遇到過...