Maven pom.xml Build SSH + SCP

234 views
Skip to first unread message

Kirmaier Andrade

unread,
Apr 29, 2011, 9:04:13 AM4/29/11
to us...@mgjug.dev.java.net, jav...@googlegroups.com, jav...@yahoogrupos.com.br
Bom dia pessoALL,

Tenho configurado no meu pom.xml um profile de homologação, onde eu uso o plugin ant-jsch.1.7.1 para fazer o deploy do servidor de deploy para o servidor de testes/homologação. Funciona!

Porém no servidor de deploy onde está instalado o Hudson, o meu deploy sempre está quebrando alegando um nullPointerException dentro deste plugin. O erro é intermitente, e por isso não é nenhuma configuração errada minha (acredito).

Mudei a versão do ant-jsch.1.7.1  para a versão mais atual: 1.8.2, só que ai acontece outro erro:


An Ant buildException has occured: java.lang.NoSuchMethodError: org.apache.tools.ant.util.KeepAliveOutputStream.wrapSystemOut() L java/io/PrintStream;


Pesquisando na net algum exemplo dessa configuração, ou ate mesmo alguém que tenha enfrentado o mesmo erro só que não obtive êxito.

Se alguém puder dar uma luz aí, ficarei deveras agradecido.


--
[]'s,
Kirmaier Barbosa de Andrade
http://kirmaier.blogspot.com/

Flavio Cysne

unread,
Apr 29, 2011, 10:15:13 AM4/29/11
to jav...@googlegroups.com
Kirmaier,

Está usando o Hudson em um Linux ou em Windows?

Se for Linux, os IPs usados p/ efetuar o ssh e o scp já estão na lista dos known_hosts do seu computador? para saber, tente efetuar um ssh ou um scp p/ o IP e verifique se aparece uma mensagem p/ aceitar a identificação do novo IP.

Tem como passar parte to stacktrace para quando o NullPointerException acontece?

Atenciosamente,
Flávio Cysne.


--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

Kirmaier Andrade

unread,
Apr 29, 2011, 12:22:53 PM4/29/11
to jav...@googlegroups.com
@Flávio,

Meu servidor de deploy - Hudson -  está rodando em Linux, Ubuntu!

Os IP's usados estão funcionando corretamente. A cada 10 deploy's por exemplo, 3, 4 dão nullPointer, os outros 7,6 funcionam corretamente.

Você me perguntou aqui e acabei de disparar a construção dos projetos no Hudson, e funcionou 100%. =/

* Eu comecei a imaginar que fosse um timeout do servidor, para dar a resposta ao SSH, cogitei essa possibilidade.
** Outra (remota) mas considerei é o número de projetos que eu rodo o build, são 26 projetos rodando o pom.xml do Pai... mas sinceramente acho essa a mais remota possibilidade possivel.

Esse log é quando estou usando o ant-jsch.1.7.1 - Que funciona as vezes 100%, as vezes da erro:

[INFO] An Ant BuildException has occured: com.jcraft.jsch.JSchException: java.lang.NullPointerException

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: An Ant BuildException has occured: com.jcraft.jsch.JSchException: java.lang.NullPointerException
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
    at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    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)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at hudson.maven.agent.Main.launch(Main.java:165)
    at hudson.maven.MavenBuilder.call(MavenBuilder.java:165)
    at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:744)
    at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:688)
    at hudson.remoting.UserRequest.perform(UserRequest.java:114)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:270)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: com.jcraft.jsch.JSchException: java.lang.NullPointerException
    at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:131)
    at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
    at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
    ... 28 more
Caused by: com.jcraft.jsch.JSchException: java.lang.NullPointerException
    at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.executeCommand(SSHExec.java:267)
    at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.execute(SSHExec.java:162)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118)
    ... 32 more
Caused by: com.jcraft.jsch.JSchException: java.lang.NullPointerException
    at com.jcraft.jsch.Channel.connect(Channel.java:205)
    at com.jcraft.jsch.Channel.connect(Channel.java:144)
    at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.executeCommand(SSHExec.java:209)
    ... 41 more
[INFO]

Esse log de erro é usando a versão ant-jsch.1.8.2, que não funciona de jeito nenhum:

[INFO] Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata

input contained no data
[INFO] ------------------------------------------------------------------------
[DEBUG] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
    at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    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)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at hudson.maven.agent.Main.launch(Main.java:165)
    at hudson.maven.MavenBuilder.call(MavenBuilder.java:165)
    at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:744)
    at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:688)
    at hudson.remoting.UserRequest.perform(UserRequest.java:114)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:270)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.plugin.install.InstallMojo.execute(InstallMojo.java:143)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
    at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
    ... 28 more
Caused by: org.apache.maven.artifact.installer.ArtifactInstallationException: Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.artifact.installer.DefaultArtifactInstaller.install(DefaultArtifactInstaller.java:123)
    at org.apache.maven.plugin.install.InstallMojo.execute(InstallMojo.java:105)
    ... 31 more
Caused by: org.apache.maven.artifact.repository.metadata.RepositoryMetadataInstallationException: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.install(DefaultRepositoryMetadataManager.java:462)
    at org.apache.maven.artifact.installer.DefaultArtifactInstaller.install(DefaultArtifactInstaller.java:111)
    ... 32 more
Caused by: org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException: Error updating group repository metadata
    at org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository(AbstractRepositoryMetadata.java:72)
    at org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.install(DefaultRepositoryMetadataManager.java:458)
    ... 33 more
Caused by: java.io.EOFException: input contained no data
    at hidden.org.codehaus.plexus.util.xml.pull.MXParser.fillBuf(MXParser.java:3005)
    at hidden.org.codehaus.plexus.util.xml.pull.MXParser.more(MXParser.java:3048)
    at hidden.org.codehaus.plexus.util.xml.pull.MXParser.parseProlog(MXParser.java:1422)
    at hidden.org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1407)
    at hidden.org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1105)
    at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:949)
    at org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.updateRepositoryMetadata(AbstractRepositoryMetadata.java:98)
    at org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository(AbstractRepositoryMetadata.java:68)
    ... 34 more
[INFO]

* O servidor aonde está instalado o Hudson não possui acesso a internet, então eu rodo o build na minha minha máquina, para atualizar os artefatos e depois eu copio toda a pasta /.m2 para o servidor.

Se tiver alguma luz, vai ajudar demais.!

Valew ;-)


2011/4/29 Flavio Cysne <flavi...@gmail.com>

Flavio Cysne

unread,
Apr 29, 2011, 2:19:00 PM4/29/11
to jav...@googlegroups.com
Kirmaier,

    não trabalho com várias builds simultâneas, mas o link abaixo é de uma thread sobre o mesmo problema que você está enfrentando.

    http://jenkins.361315.n4.nabble.com/Hudson-SCP-task-failing-intermittently-td377168.html

    pelo que entendi do post o comando de scp não funciona com concorrência.

Boa sorte,
Flávio Cysne.

Kirmaier Andrade

unread,
Apr 29, 2011, 2:50:04 PM4/29/11
to jav...@googlegroups.com
Flávio,

Muito obrigado pela atenção e pelo tempo gasto pesquisando minha dúvida, valew mesmo.

Estranho é o fato dele funcionar 70% dos bluid's ok, e outros 30% com erro. Se fosse erro de concorrencia, vamos concordar que deveria dar erro sempre né ?? Pelo menos eu acho!

Esse erro não faz muito sentido, daí um amigo sugeriu-me de fazer uma mudança nesse esquema: Mapear a pasta do meu servidor de homologação dentro do meu servidor de deploy, daí eu faço o deploy "localhost" e atualizando o meu servidor de homologação.

Gostei dessa idéia e vou tentar aplica-la aqui.

De qualquer forma, valew pela atenção aí, mais uma vez.
Reply all
Reply to author
Forward
0 new messages