2014-12-16 4 views
1

Я переношу наш сервер сборки maven из Maven 2 в Maven 3. Я настраиваю maven для развертывания нового приложения Java на удаленном сервере с помощью scp. Однако при запуске «mvn install» я получаю следующие сообщения.Maven Deploy Plugin

[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. Кроме того, я смотрел системную память, используя верхнюю команду, и она почти никогда не использует более 1,5 ГБ памяти. Я рассмотрел множество других решений таких проблем, и все они связаны с тем, чтобы дать Maven больше памяти, но я думаю, что 2 ГБ должны покрывать все, что нужно maven (может быть, я ошибаюсь). Не уверен, что это помогает, но я могу запустить «mvn install», и он отлично работает. Единственная проблема - команда maven deploy.

Вагон плагин настроен в моем pom.xml как так

<extensions> 
    <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ssh</artifactId> 
     <version>2.4</version> 
    </extension> 
</extensions> 

и конфигурации Maven-Deploy-модуль сконфигурирован в POM, как это ...

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.8.2</version> 
    <configuration> 
     <argLine>-Xmx3000m</argLine> 
    </configuration> 
</plugin> 

У меня есть было трудно с этим, не уверен, что еще попробовать. Будем очень благодарны за любые возможные решения или общие рекомендации.

При необходимости я могу добавить дополнительную информацию.

Благодарим за помощь, которую вы можете предоставить.

+0

вы можете взять сброс кучи во время развертывания –

+0

Попробовал добавить следующие строки в MAVEN_OPTS: -XX: + HeapDumpOnOutOfMemoryError И добавил, что вариант на мой верный плагин Maven-безошибочный-плагин <конфигурация> -Xmx3000m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError , но не смог получить maven для сброса кучи. – PaulM

+0

Вы можете наблюдать за heapdump или быстрее?вручную doin igt –

ответ

1

Попробуйте увеличить размер кучи. Ссылки 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 и попробовать еще раз

+0

Я попытался это решение, но получил те же результаты, что и в моем первоначальном сообщении. Спасибо за предложение! – PaulM