我一直在将我们的 Maven 构建服务器从 Maven 2 迁移到 Maven 3。我正在设置 Maven 以使用 scp 将新的 Java 应用程序部署到远程服务器。但是,当我运行“mvn install”时,我收到以下消息。
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] FooCorp Parent Project
[INFO] FooCorp Daemons
[INFO] FooCorp Transport Objects and Interfaces
[INFO] FooCorp Web Client
[INFO] FooCorp Web Application
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building FooCorp Parent Project S88-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3:install (default-install) @ Foo ---
[INFO] Installing /home/ubuntu/FooCorp/pom.xml to /home/ubuntu/mvn_local_repo/com/Foo/Foo/S88-SNAPSHOT/Foo-S88-SNAPSHOT.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ Foo ---
Downloading: scp://mvn.FooCorp.com/var/www/maven2/com/Foo/Foo/S88-
SNAPSHOT/maven-metadata.xml
Exception in thread "pool-1-thread-1" java.lang.OutOfMemoryError: Java heap space
at com.jcraft.jsch.IdentityFile.decrypt_rsa(IdentityFile.java:648)
at com.jcraft.jsch.IdentityFile.decrypt(IdentityFile.java:553)
at com.jcraft.jsch.IdentityFile.setPassphrase(IdentityFile.java:435)
at com.jcraft.jsch.JSch.addIdentity(JSch.java:225)
at com.jcraft.jsch.JSch.addIdentity(JSch.java:207)
at com.jcraft.jsch.JSch.addIdentity(JSch.java:200)
at org.apache.maven.wagon.providers.ssh.jsch.AbstractJschWagon.openConnectionInternal(AbstractJschWagon.java:133)
at org.apache.maven.wagon.AbstractWagon.openConnection(AbstractWagon.java:115)
at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:217)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.connectWagon(WagonRepositoryConnector.java:345)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.pollWagon(WagonRepositoryConnector.java:385)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:571)
at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
这是有关我正在使用的系统的一些信息。
:> echo $MAVEN_OPTS
-Xmx2000m -Xms256m
:> mvn --version
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.7.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-36-generic", arch: "amd64", family: "unix"
在 Ubuntu 14.04 上运行,总内存为 4GB。
每次运行 mvn install
时都会收到相同的错误消息。 java堆空间异常之前的最后一个命令中正在下载的文件...
下载:scp://mvn.FooCorp.com/var/www/maven2/com/Foo/Foo/S88-SNAPSHOT/maven-metadata.xml
...确实存在于远程服务器上(我可以访问它,所以我检查了)。根据 MAVEN_OPTS,Maven 似乎有足够的内存。另外,我使用 top 命令观察了系统内存,它几乎没有使用超过 1.5GB 的内存。我已经研究过许多其他解决此类问题的解决方案,它们都涉及给 Maven 更多内存,但我认为 2GB 应该满足 Maven 的任何需求(我可能是错的)。不确定这是否有帮助,但我可以运行“mvn install”并且它运行良好。唯一的问题是 Maven 部署命令。
wagon 插件在我的 POM.xml 中配置如下
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.4</version>
</extension>
</extensions>
并且 maven-deploy-plugin 配置在 POM 中配置如下...
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<argLine>-Xmx3000m</argLine>
</configuration>
</plugin>
我一直在努力解决这个问题,不知道还能尝试什么。任何可能的解决方案或一般建议将不胜感激。
如果需要,我可以添加更多信息。
感谢您提供的任何帮助。
最佳答案
尝试增加堆大小。 PFB链接供引用。希望这可以帮助您。
http://javarevisited.blogspot.com/2011/08/increase-heap-size-maven-ant.html
http://javarevisited.blogspot.com/2011/09/javalangoutofmemoryerror-permgen-space.html
:> 回显 $MAVEN_OPTS -Xmx2000m -Xms256m
尝试将突出显示的粗体大小增加到-Xms512m,然后重试
关于java - Maven 部署插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27496849/