我正在Jenkins構建服務器上構建Maven Java應用程序。我在Jenkins的構建過程中多次碰到java.lang.OutOfMemoryError: PermGen space
(但從來沒有在我的本地主機上),因此失敗了我的構建。設置Maven將分離的子JVM進程的permgen大小
我已經嘗試了詹金斯設置MAVEN_OPTS
:我走進Jenkins
- >Manage Jenkins
- >Configure system
- >Global MAVEN_OPTS
並將其設置爲-Xms512m -Xmx1024m -XX:MaxPermSize=512m -XX:PermSize=512m
。儘管將其設置爲這個高價值,我們仍然遇到了PermGen空間問題。我不想將MAVEN_OPTS設置爲更高的值;我沒有看到我的應用程序可能需要一個空間,我寧願深入研究高內存使用問題。最近,我一直在想,或許這個permgen空間問題不是來自Maven本身,而是Maven分離的一個JVM進程(例如:插件)。我提出這個假設是因爲儘管已經吐出了我們的permgen空間錯誤行,但Maven仍然能夠執行TestNG測試。這導致PermGen的錯誤這樣的一個插件是碼頭:
Oct 31, 2012 7:55:37 AM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: handle failed
java.lang.OutOfMemoryError: PermGen space
因此,我想知道:
是否MAVEN_OPTS
變量也可以應用到子JVM處理一個Maven構建旋轉關閉?如果不是,那麼我如何爲Jetty這些子進程設置JVM選項?
注意:我正在使用Maven 3.0.4。
我們嘗試設置argLine,但是當我們運行'maven-gae-plugin *'運行'mvn gae:run'時,它不起作用。 – ecbrodie
看看'maven-gae-plugin'的源代碼,你有沒有試過'jvmFlags'參數? – Kkkev
最近我遇到了同樣的問題,所以我嘗試了關於設置'jvmFlags'參數的建議......並且它像一個魅力一樣工作!我的問題是我們在maven-gae-plugin的配置中設置了''標籤,但我們應該一直使用''。謝謝! –
ecbrodie