2012-12-07 29 views
5

我的maven 3.0.3 build在Jenkins中設置了-Xmx1G-XX:MaxPermSize=500M。然而,當我做了部署,我總是得到我的神器似乎很大,被maven部署。我能做什麼?

java.lang.OutOfMemoryError: Java heap space 
    at java.util.Arrays.copyOf(Arrays.java:2786) 
    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94) 
    at sun.net.www.http.PosterOutputStream.write(PosterOutputStream.java:61) 
    at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:492) 
    at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:457) 
    at org.apache.maven.wagon.AbstractWagon.putTransfer(AbstractWagon.java:411) 
    at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:392) 
    at org.apache.maven.wagon.AbstractWagon.putTransfer(AbstractWagon.java:365) 
    at org.apache.maven.wagon.StreamWagon.put(StreamWagon.java:163) 
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:825) 
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.java:465) 
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:278) 
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:215) 
    at org.sonatype.aether.impl.internal.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:480) 
    at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:137) 
    at org.apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.java:167) 
    at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:188) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 

神器部署是283M大。我能做些什麼才能正確部署?

+0

什麼版本的Maven? – bmargulies

+1

你的神器有多大? – dunni

+0

@dunni'283M'大。 – Riduidel

回答

2

此問題是由this bug造成的。正如鏈接中所建議的,只需使用webdav進行部署即可。

考慮執行下列操作:

<project> 
    [...] 
    <build> 
    <extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-webdav</artifactId> 
     <version>1.0</version> 
     </extension> 
    </extensions> 
    </plugin> 
    </build> 
    ... 
    <distributionManagement> 
    <site> 
     <id>sample-project.website</id> 
     <url>dav:https://dav.sample.com/sites/sample-project</url> 
    </site> 
    </distributionManagement> 
    ... 
</project> 

我以前有這個問題。我相信只有大於256 MB的工件纔會發生這種情況。

切換到webdav部署方法後,還可以減少內存設置。 (如果由於部署過程中的內存問題而專門修改了它們)。

+1

如果你正在使用3.0.4 –

+1

這個技巧很可能不需要,但是正如他指出的那樣,他使用的是3.0.3。 – carlspring

1

這個答案只是說@olamy是正確的:升級到maven 3.0.4解決了這個問題。

+0

或@carlspring--他與錯誤鏈接,解釋了問題並提供瞭解決方法。 – eis

+0

@eis我接受carlspring答案的原因,好了,我可以問我的同事遷移他們的行家,但我不能要求整個趣聞這樣做:-) – Riduidel

+0

我認爲它實際上是佈雷特·波特誰指出,它是固定在3.0.4中,我不知道自己。總之,很高興有幫助! :) – carlspring

相關問題