Я переносил наш сервер сборки maven с Maven 2 на Maven 3. Я настраиваю maven для развертывания нового java-приложения на удаленном сервере с помощью scp. Однако при запуске «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 с общей памятью 4 ГБ.
Я получаю одно и то же сообщение об ошибке каждый раз, когда запускаю mvn install
. Файл, который загружается в последней команде перед исключением пространства кучи java ... Downloading: scp://mvn.FooCorp.com/var/www/maven2/com/Foo/Foo/S88-SNAPSHOT/maven-metadata.xml
... Существует ли на удаленном сервере (у меня есть к нему доступ, поэтому я проверил). У Maven, похоже, много памяти в соответствии с MAVEN_OPTS. Кроме того, я наблюдал за системной памятью с помощью команды top, и она почти никогда не использует более 1,5 ГБ памяти. Я просмотрел множество других решений подобных проблем, и все они предполагают предоставление Maven большего объема памяти, но я думаю, что 2 ГБ должны покрывать все, что нужно maven (могу ли я ошибаться). Не уверен, что это поможет, но я могу запустить «mvn install», и он отлично работает. Единственная проблема - команда развертывания maven.
Плагин вагона настроен в моем 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>
У меня было трудное время с этим, не знаю, что еще попробовать. Буду очень признателен за любые возможные решения или общие советы.
Я могу добавить больше информации, если это необходимо.
Спасибо за любую помощь, которую вы можете предоставить.
<argLine>..</argLine>
. Вопрос в том, почему вы пытаетесь использовать maven-deploy-plugin для развертывания для передачи на удаленный сервер приложений. maven-deploy-plugin предназначен для развертывания артефактов в репозиторий. Если вы хотите развернуть, я предлагаю вместо этого использовать cargo-maven2-plugin. - person khmarbaise   schedule 16.12.2014