2011-11-21 62 views
2

# 我正在使用Buildr作爲我的構建工具。我的構建過程的一部分使用JAX-WS從WSDL生成Java源代碼。我有一個ANT構建腳本,它使用wsimport ant任務執行此操作。在Buildr中使用AntWrap Ruby模塊可以做同樣的事情。buildr antwrap OutOfMemoryError PermGen空間

我的問題是當我嘗試爲許多WSDL生成源代碼時,我得到了OutOfMemoryError PermGen空間。運行本身螞蟻時,我得到了同樣的問題,而是由ANT_OPTS環境變量設置爲解決它:

set ANT_OPTS=-Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m 

但是當我使用Buildr運行我的體型我仍然得到即使這個環境變量設置錯誤。我甚至嘗試在我的構建文件中設置這個變量,但這沒有幫助。

我的環境如下:

  • 視窗XP
  • 的JRuby 1.6.3
  • Buildr 1.4.6
  • AntWrap 0.7.0

回答

4

你嘗試設置JAVA_OPTS在構建文件中,我不確定buildr/antwrap是否會提取ANT_OPS環境變量。

ENV['JAVA_OPTS'] ||= '-Xms1g -Xmx1g' 
+0

我也覺得'JAVA_OPTS'就是解決方案。請注意,它也可以設置爲環境變量(而不是構建文件)。爲了更加清楚,如果環境變量尚未設置,則此建議('|| =')中的構造將僅將其設置爲「-Xms1g -Xmx1g」。 –

+0

感謝您的建議。我曾嘗試設置JAVA_OPTS以及JVM_ARGS,但如果將JAVA_OPTS變量設置爲構建文件外部(即在命令提示符下),那麼它仍然不起作用 – Ross

+0

然後它可以工作。感謝傢伙...........這確實有助於 – Ross