2012-03-07 46 views
0

我已經將jenkins安裝爲windows服務並創建將調用ant腳本的作業。 Ant腳本由編譯flex應用程序的mxmlc編譯器組成。編譯失敗並拋出異常的異常。我沒有調整內存分配的ant_opts,但無濟於事。但是,當我嘗試以獨立模式運行jenkins時,問題不會發生。Jenkins as windows service outofmemory

任何人遇到過類似的問題?

Exceptions: 
[javac] Compiling 163 source files to .... 
[javac] Note: Some input files use unchecked or unsafe operations. 
[javac] Note: Recompile with -Xlint:unchecked for details. 
[copy] Copying 21 files to .... 
[mxmlc] Loading configuration file ... 
[mxmlc] ... 
[mxmlc] Loading configuration file ... 
[mxmlc] ... 
[mxmlc] Loading configuration file ... 
[mxmlc] ... 
[mxmlc] Loading configuration file ... 
[mxmlc] ... 
[mxmlc] Loading configuration file C:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.5.0\frameworks\flex-config.xml 
[mxmlc] Error: PermGen space 
[mxmlc] 
[mxmlc] java.lang.OutOfMemoryError: PermGen space 
[mxmlc]  at java.lang.ClassLoader.defineClass1(Native Method) 
[mxmlc]  at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
[mxmlc]  at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
[mxmlc]  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
[mxmlc]  at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
[mxmlc]  at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
[mxmlc]  at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
[mxmlc]  at java.security.AccessController.doPrivileged(Native Method) 
[mxmlc]  at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
[mxmlc]  at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
[mxmlc]  at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
[mxmlc]  at org.apache.xerces.parsers.DTDConfiguration.createEntityManager(Unknown Source) 
[mxmlc]  at org.apache.xerces.parsers.DTDConfiguration.<init>(Unknown Source) 
[mxmlc]  at org.apache.xerces.parsers.StandardParserConfiguration.<init>(Unknown Source) 
[mxmlc]  at org.apache.xerces.parsers.IntegratedParserConfiguration.<init>(Unknown Source) 
[mxmlc]  at org.apache.xerces.parsers.XML11Configuration.<init>(Unknown Source) 
[mxmlc]  at org.apache.xerces.parsers.XML11Configuration.<init>(Unknown Source) 
[mxmlc]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
[mxmlc]  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
[mxmlc]  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
[mxmlc]  at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
[mxmlc]  at java.lang.Class.newInstance0(Class.java:355) 
[mxmlc]  at java.lang.Class.newInstance(Class.java:308) 
[mxmlc]  at org.apache.xerces.util.ObjectFactory.newInstance(Unknown Source) 
[mxmlc]  at org.apache.xerces.util.ObjectFactory.findJarServiceProvider(Unknown Source) 
[mxmlc]  at org.apache.xerces.util.ObjectFactory.createObject(Unknown Source) 
[mxmlc]  at org.apache.xerces.util.ObjectFactory.createObject(Unknown Source) 
[mxmlc]  at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) 
[mxmlc]  at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) 
[mxmlc]  at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source) 
[mxmlc]  at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source) 
[mxmlc]  at flex2.compiler.config.FileConfigurator.load(FileConfigurator.java:113) 
+0

您可以在這裏複製異常嗎? – 2012-03-07 21:10:38

+0

請參閱原文。 – mattbernard 2012-03-08 09:18:45

+0

我也遇到了同樣的錯誤。你有沒有設法解決這個問題?我認爲它必須用64位JRE來做一些事情。 mxmlc僅適用於32位JRE。我的設置中的問題是,我的Jenkins編譯Java和Flex模塊。雖然Java需要64位JRE,但Flex需要32位JRE。 – 2014-02-17 14:47:34

回答

0

如果您的Permgen空間不足,請嘗試通過調整參數到JVM來增加可用內存。

jenkins.jenkins \ jenkins.xml包含windows服務的服務設置:這裏是我們的一個副本。

<service> 
    <id>jenkins</id> 
    <name>Jenkins</name> 
    <description>This service runs Jenkins continuous integration system.</description> 
    <env name="JENKINS_HOME" value="%BASE%"/> 
    <!-- 
    if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe. 
    The following value assumes that you have java in your PATH. 
    --> 
    <executable>java</executable> 
    <arguments>-Xrs -Xmx512m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "C:\Hudson\.hudson\jenkins.war" --httpPort=80</arguments> 
    <logmode>rotate</logmode> 
</service> 

-XX:MaxPermSize參數=512米參數是上週加入到解決非常類似你這樣的問題。