2012-12-07 6 views
5

Il mio build di maven 3.0.3 ha un -Xmx1G e -XX:MaxPermSize=500M ambientato in Jenkins. tuttavia, quando faccio una Deploy, ho sempre arrivareIl mio artefatto sembra essere grande per essere implementato da Maven. Cosa posso fare?

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) 

Artefatto da implementare è 283M grande. cosa posso fare per averlo correttamente installato?

+0

Quale versione di Maven? – bmargulies

+1

Quanto è grande il tuo artefatto? – dunni

+0

@dunni '283M' grande. – Riduidel

risposta

2

Questo problema è causato da this bug. Come suggerito nel link, usa semplicemente webdav per la distribuzione.

in considerazione di fare il seguente:

<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> 

Ho avuto questo problema prima. Credo che accada solo con artefatti con una dimensione> = 256 MB.

Dopo il passaggio al metodo di distribuzione di webdav, è anche possibile ridurre le impostazioni della memoria. (se li hai modificati in modo specifico solo a causa del problema di memoria durante la distribuzione).

+1

probabilmente questa tecnica non è necessaria se si utilizza 3.0.4 –

+1

Buono a sapersi, ma come ha sottolineato, sta usando 3.0.3. – carlspring

1

Questa risposta per dire semplicemente che @olamy aveva ragione: l'aggiornamento a Maven 3.0.4 ha risolto il problema.

+0

o @carlspring: si è collegato al bug, ha spiegato il problema e fornito la soluzione alternativa. – eis

+0

@eis Accetto causa risposta carlspring, beh, posso chiedere ai miei colleghi di migrare il loro esperto, ma non posso chiedere all'interwebz di farlo :-) – Riduidel

+0

Credo che sia stato in realtà Brett Porter che ha sottolineato che era stato risolto in 3.0.4, che non conoscevo da solo. Comunque, felice di essere d'aiuto! :) – carlspring

Problemi correlati