我的工件似乎很大,被maven部署。我能做什么? [英] My artifact seems to big to be deployed by maven. What can I do?

查看:116
本文介绍了我的工件似乎很大,被maven部署。我能做什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的maven 3.0.3版本在Jenkins中设置了一个 -Xmx1G -XX:MaxPermSize = 500M 。然而,当我做一个部署,我总是得到

My maven 3.0.3 build has a -Xmx1G and -XX:MaxPermSize=500M set in Jenkins. however, when I do a deploy, I always get

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 大。我可以做些什么来正确部署?

Artifact to deploy is 283Mbig. what can I do to have it correctly deployed ?

推荐答案

这个问题是由这个bug 。如链接中所建议的,只需使用webdav来部署。

This issue is caused by this bug. As suggested in the link, simply use webdav to deploy.

考虑做以下操作:

<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的工件。

I've had this issue before. I believe it happens only with artifacts with a size of >= 256 MB.

切换到webdav部署方法后,还可以减少内存设置。 (如果您由于部署期间的内存问题而专门修改了它们)。

After switching to the webdav deployment method, you can also reduce your memory settings. (if you've specifically modified them just due to the memory issue during the deployment).

这篇关于我的工件似乎很大,被maven部署。我能做什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆