一、在eclipse.ini中指定vm參數
Eclipse預設是運作在JRE上的,而m2eclipse的一些功能要求使用JDK,解決方法是配置Eclipse安裝目錄的eclipse.ini檔案,添加vm配置指向JDK,如:
--launcher.XXMaxPermSize 256m
-vm
D:\java\jdk1.6.0_07\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx256m
二、設定MAVEN_OPTS環境變量
我們通常需要設定MAVEN_OPTS的值為:-Xms128m -Xmx512m,因為Java預設的最大可用記憶體往往不能夠滿足Maven運作的需要,比如在項目較大時,使用Maven生成項目站點需要占用大量的記憶體,如果沒有該配置,我們很容易得到java.lang.OutOfMemeoryError。是以,一開始就配置該變量是推薦的做法。
關于如何設定環境變量,請參考前面設定M2_HOME環境變量的做法,盡量不要直接修改mvn.bat或者mvn這兩個Maven執行腳本檔案。因為如果修改了腳本檔案,更新Maven時你就不得不再次修改,一來麻煩,二來容易忘記。同理,我們應該盡可能地不去修改任何Maven安裝目錄下的檔案。
三、配置使用者範圍settings.xml
Maven使用者可以選擇配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml。前者是全局範圍的,整台機器上的所有使用者都會直接受到該配置的影響,而後者是使用者範圍的,隻有目前使用者才會受到該配置的影響。
我們推薦使用使用者範圍的settings.xml,主要原因是為了避免無意識地影響到系統中的其他使用者。當然,如果你有切實的需求,需要統一系統中所有使用者的settings.xml配置,當然應該使用全局範圍的settings.xml。
除了影響範圍這一因素,配置使用者範圍settings.xml檔案還便于Maven更新。直接修改conf目錄下的settings.xml會導緻Maven更新不便,每次更新到新版本的Maven,都需要複制settings.xml檔案,如果使用~/.m2目錄下的settings.xml,就不會影響到Maven安裝檔案,更新時就不需要觸動settings.xml檔案。
四、不要使用IDE内嵌的Maven
無論是Eclipse還是NetBeans,當我們內建Maven時,都會安裝上一個内嵌的Maven,這個内嵌的Maven通常會比較新,但不一定很穩定,而且往往也會和我們在指令行使用的Maven不是同一個版本。這裡有會出現兩個潛在的問題:首先,較新版本的Maven存在很多不穩定因素,容易造成一些難以了解的問題;其次,除了IDE,我們也經常還會使用指令行的Maven,如果版本不一緻,容易造成建構行為的不一緻,這是我們所不希望看到的。是以,我們應該在IDE中配置Maven插件時使用與指令行一緻的Maven。
在m2eclipse環境中,點選菜單欄中的Windows,然後選擇Preferences,在彈出的對話框中,展開左邊的Maven項,選擇Installation子項,在右邊的面闆中,我們能夠看到有一個預設的Embedded Maven安裝被選中了,點選Add…然後選擇我們的Maven安裝目錄M2_HOME,添加完畢之後選擇這一個外部的Maven。
此處無圖。。。
圖2-14 在Eclipse中使用外部Maven
NetBeans Maven插件預設會偵測PATH環境變量,是以會直接使用與指令行一緻的Maven環境。依次點選菜單欄中的工具→選項→其他→Maven标簽欄,你就能看到如圖2-15所示的配置:
圖2-15 在NetBeans中使用外部Maven
五、maven warnning 'build.plugins.plugin.version' is missing
在pom.xml中添加新的dependency:
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<type>maven-plugin</type>
</dependency> 在build中添加:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven.compiler.plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<verbal>true</verbal>
</configuration>
</plugin>
</plugins>
</build>
</project>
但是仍然有個錯誤,錯誤資訊:build.plugins.plugin.version
可以看到,在pom.xml裡面的<build>下面,沒有<version>。是以要多加一個version:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven.compiler.plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<verbal>true</verbal>
</configuration>
</plugin>
</plugins>
</build>
</project>
好,解決問題。
六、如何去掉maven的[WARNING] Using platform encoding (UTF-8 actually) to copy filter
- <project>
- ...
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- ...
- </project>