You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by andrew <li...@pyroboy.com.au> on 2005/08/05 09:07:50 UTC

[m2] deploy via scp

Maven version: 2.0-beta-1-SNAPSHOT, and
Maven version: 2.0-alpha-3

Hi,

I am attempting to deploy to our repository server via scp.

In ~/.m2/settings.xml I have:

  <servers>
    <server>
      <id>repos</id>
      <username>amm</username>
      <privateKey>/home/amm/.ssh/id_dsa</privateKey>
    </server>
  </servers>

and in pom.xml:

  <distributionManagement>
    <repository>
      <id>repos</id>
      <url>scp://server/path/to/deploy/repos</url>
    </repository>
  </distributionManagement>

>From a command line I can:

$ scp foo.xml server:/path/to/deploy/repos, OR
$ scp foo.xml amm@server:/path/to/deploy/repos

without any trouble. I am caching my key's password with ssh-agent.

When I attempt to deploy I receive the following exceptions:

$ m2 deploy:deploy
[INFO] Using local copy of plugins.xml (plugin mappings) for group:
'org.apache.maven.plugins' from:
/home/amm/.m2/repository/org/apache/maven/plugins/plugins.xml
[INFO] maven-deploy-plugin: resolved to version 2.0-alpha-3 from local
repository
[INFO]
----------------------------------------------------------------------------
[INFO] Building Distra
[INFO]    task-segment: [deploy:deploy]
[INFO]
----------------------------------------------------------------------------
[INFO] [deploy:deploy]
[INFO]
----------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
----------------------------------------------------------------------------
[INFO] Diagnosis: Error deploying artifact
[INFO]
----------------------------------------------------------------------------
[ERROR] Cause:
org.apache.maven.plugin.MojoExecutionException: Error deploying artifact
        at
org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:184)
        at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:361)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:472)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:453)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:435)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:127)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:186)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:292)
        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:324)
        at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by:
org.apache.maven.artifact.deployer.ArtifactDeploymentException: Error
deploying artifact:
        at
org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:86)
        at
org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:49)
        at
org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:172)
        ... 16 more
Caused by: org.apache.maven.wagon.TransferFailedException:
Authentication failed:
        at
org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:185)
        at
org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:92)
        at
org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:72)
        ... 18 more
Caused by:
org.apache.maven.wagon.authentication.AuthenticationException: Cannot
connect. Reason: Auth cancel
        at
org.apache.maven.wagon.providers.ssh.ScpWagon.openConnection(ScpWagon.java:164)
        at
org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:123)
        at
org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:151)
        ... 20 more
Caused by: com.jcraft.jsch.JSchException: Auth cancel
        at com.jcraft.jsch.Session.connect(Unknown Source)
        at com.jcraft.jsch.Session.connect(Unknown Source)
        at
org.apache.maven.wagon.providers.ssh.ScpWagon.openConnection(ScpWagon.java:158)
        ... 22 more
[INFO]
----------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Fri Aug 05 16:56:13 EST 2005
[INFO] Final Memory: 1M/3M
[INFO]
----------------------------------------------------------------------------

ScpWagon appears to be harvesting my username and key correctly (I get a
different exception if these are not specified in settings.xml) but
jsch.Session is barfing on the authentication.

Any ideas?

Is there any reason I need to have my username and key specified in
settings.xml at all? Couldn't m2 just delegate to ssh (as for command
line scp) by default?

Thanks,
...andrew
--

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by andrew <li...@pyroboy.com.au>.

Brett Porter wrote:
> ok, that's a bug. Would you mind filing it at
> http://jira.codehaus.org/browse/MNG so that we can keep track of it
> and keep in touch with you in case it can't be reproduced.

MNG-713
<http://jira.codehaus.org/browse/MNG-713>

> Sounds like a missing feature - and another one for JIRA :)

MNG-712
<http://jira.codehaus.org/browse/MNG-712>

Thanks,
...andrew
--

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by Brett Porter <br...@gmail.com>.
On 8/9/05, andrew <li...@pyroboy.com.au> wrote:
> I'm using the current svn build with the project pom additions suggested
> previously.

ok, that's a bug. Would you mind filing it at
http://jira.codehaus.org/browse/MNG so that we can keep track of it
and keep in touch with you in case it can't be reproduced.

> wagon-ssh-external now uses my native scp and ssh-agent as expected,
> however it still requires a username tag in settings.xml:

Sounds like a missing feature - and another one for JIRA :)

> Anyway, I can handle having a username in settings.xml and using
> scpexe:// for my deploy URLs.

Great. Hopefully we can sort out the other issues too.

Cheers,
Brett

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by andrew <li...@pyroboy.com.au>.
Hi,

Brett Porter wrote:
> It just has access to the predefined Java system properties (user.home
> and user.name, for example).

OK

> Was this in alpha-3 by adding the wagon to $M2_HOME/lib? Did anything
> else get added? It seems odd, as that provider should not be using
> that method of plexus-utils.
> 
> Another (very temporary) option is to locally edit the file
> ~/.m2/repository/org/apache/maven/plugins/maven-deploy-plugin/2.0-alpha-3/maven-deploy-plugin-2.0-alpha-3.pom
> and add wagon-ssh-external as a dependency.
> 
> If this is not successful, you may need to update to the current SVN
> version (or wait for beta-1) to make use of extensions.

I'm using the current svn build with the project pom additions suggested
previously.

I haven't copied anything to ~/.m2/repository or $M2_HOME/lib.

If I edit the maven-deploy-plugin pom (and remove the build extension
from my project pom) we're back to:

org.codehaus.plexus.component.repository.exception.ComponentLookupException:
Component descriptor cannot be found in the component repository:
org.apache.maven.wagon.Wagonscpexe

Removing all edits and copying the wagon-ssh-external jar to
$M2_HOME/lib works.

wagon-ssh-external now uses my native scp and ssh-agent as expected,
however it still requires a username tag in settings.xml:

java.lang.IllegalArgumentException: Authentication Credentials cannot be
null for SSH protocol
        at
org.apache.maven.wagon.providers.sshext.ScpExternalWagon.openConnection(ScpExternalWagon.java:90)

I've checked that user.name and user.home are being set correctly in the
JVM.

AbstractWagon only appears to handle the case of null AuthenticationInfo
by attempting to extract the username from the deploy URL, although this
does not appear to work for me.

Setting the URL to

scpexe://amm@server/path/to/repository

yields the same IllegalArgumentException as above.

Anyway, I can handle having a username in settings.xml and using
scpexe:// for my deploy URLs.

Thanks,
...andrew
--

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by Brett Porter <br...@gmail.com>.
> Brett Porter wrote:
> Great. Is it possible to get m2 to print out a list of the variables it
> knows about (like set or env)?

It just has access to the predefined Java system properties (user.home
and user.name, for example).

> This gets me a bit further until we get to:
> 
> Exception in thread "main" java.lang.LinkageError: Class
> org/codehaus/plexus/util/xml/Xpp3Dom violates loader constraints

Was this in alpha-3 by adding the wagon to $M2_HOME/lib? Did anything
else get added? It seems odd, as that provider should not be using
that method of plexus-utils.

Another (very temporary) option is to locally edit the file
~/.m2/repository/org/apache/maven/plugins/maven-deploy-plugin/2.0-alpha-3/maven-deploy-plugin-2.0-alpha-3.pom
and add wagon-ssh-external as a dependency.

If this is not successful, you may need to update to the current SVN
version (or wait for beta-1) to make use of extensions.

Hope this helps,
Brett

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by andrew <li...@pyroboy.com.au>.
Hi,

Brett Porter wrote:
> On 8/8/05, andrew <li...@pyroboy.com.au> wrote:
> 
>>Do you ever envisage m2 wrapping JSch to such an extent that the
>>username and private key will be implied from the user's environment (ie
>>not set in ~/.m2/settings.xml) and password from ssh-agent?
> 
> 
> It does (should?) look for the username from $user.name and the
> private key in $user.home/.ssh/id_dsa by default.

Great. Is it possible to get m2 to print out a list of the variables it
knows about (like set or env)?

> Passphrase from an ssh-agent is not currently possible under Java as
> there isn't a way to talk to domain sockets (which ssh-agent uses).

Of course. Should've seen that coming :)

>>>You can use an external scp app by using the scpexe:// protocol.
>>
>>Is this supported in m2 yet (see below)?
> 
> 
> Yes, but omitted to mention that you need to:
> a) add wagon-ssh-external-1.0-alpha-4.jar to $M2_HOME or
> b) add the following to your POM (only works with m2 from SVN, but is
> preferred from beta-1 on):
> <build>
> <extensions>
>   <extension>
>     <groupId>org.apache.maven.wagon</groupId>
>     <artifactId>wagon-ssh-external</artifactId>
>     <version>1.0-alpha-4</version>
>   </extenstion>
> </extensions>
> 
> Hope this helps,
> Brett

This gets me a bit further until we get to:

Exception in thread "main" java.lang.LinkageError: Class
org/codehaus/plexus/util/xml/Xpp3Dom violates loader constraints

Thanks,
...andrew

$ m2 clean:clean deploy
[INFO] Using local copy of plugins.xml (plugin mappings) for group:
'org.apache.maven.plugins' from:
/home/amm/.m2/repository/org/apache/maven/plugins/plugins.xml
[INFO] maven-clean-plugin: resolved to version 2.0-alpha-3 from local
repository
[INFO]
----------------------------------------------------------------------------
[INFO] Building Distra
[INFO]    task-segment: [clean:clean, deploy]
[INFO]
----------------------------------------------------------------------------
---------------------------------------------------
constituent[0]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-artifact-2.0-beta-1-SNAPSHOT.jar
constituent[1]: file:/opt/maven-2.0-SNAPSHOT/lib/commons-cli-1.0-beta-2.jar
constituent[2]:
file:/opt/maven-2.0-SNAPSHOT/lib/plexus-input-handler-1.0-alpha-2.jar
constituent[3]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-plugin-mapping-2.0-beta-1-SNAPSHOT.jar
constituent[4]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-plugin-registry-2.0-beta-1-SNAPSHOT.jar
constituent[5]: file:/opt/maven-2.0-SNAPSHOT/lib/wagon-file-1.0-alpha-4.jar
constituent[6]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-settings-2.0-beta-1-SNAPSHOT.jar
constituent[7]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-monitor-2.0-beta-1-SNAPSHOT.jar
constituent[8]: file:/opt/maven-2.0-SNAPSHOT/lib/jline-0.9.1.jar
constituent[9]: file:/opt/maven-2.0-SNAPSHOT/lib/jsch-0.1.21.jar
constituent[10]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-plugin-descriptor-2.0-beta-1-SNAPSHOT.jar
constituent[11]:
file:/opt/maven-2.0-SNAPSHOT/lib/wagon-http-lightweight-1.0-alpha-4.jar
constituent[12]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-plugin-api-2.0-beta-1-SNAPSHOT.jar
constituent[13]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-core-2.0-beta-1-SNAPSHOT.jar
constituent[14]:
file:/opt/maven-2.0-SNAPSHOT/lib/doxia-sink-api-1.0-alpha-4-20050721.064859-1.jar
constituent[15]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-project-2.0-beta-1-SNAPSHOT.jar
constituent[16]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-profile-2.0-beta-1-SNAPSHOT.jar
constituent[17]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-artifact-manager-2.0-beta-1-SNAPSHOT.jar
constituent[18]: file:/opt/maven-2.0-SNAPSHOT/lib/wagon-ssh-1.0-alpha-4.jar
constituent[19]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-model-2.0-beta-1-SNAPSHOT.jar
constituent[20]:
file:/opt/maven-2.0-SNAPSHOT/lib/maven-reporting-api-2.0-beta-1-SNAPSHOT.jar
constituent[21]:
file:/opt/maven-2.0-SNAPSHOT/lib/wagon-provider-api-1.0-alpha-4.jar
constituent[22]:
file:/home/amm/.m2/repository/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-4/wagon-provider-api-1.0-alpha-4.jar
constituent[23]:
file:/home/amm/.m2/repository/plexus/plexus-utils/1.0-alpha-1/plexus-utils-1.0-alpha-1.jar
constituent[24]:
file:/home/amm/.m2/repository/org/apache/maven/wagon/wagon-ssh-external/1.0-alpha-4/wagon-ssh-external-1.0-alpha-4.jar
---------------------------------------------------
Exception in thread "main" java.lang.LinkageError: Class
org/codehaus/plexus/util/xml/Xpp3Dom violates loader constraints
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:328)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:472)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:453)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:435)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:127)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:186)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:292)
        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:324)
        at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

--

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by Brett Porter <br...@gmail.com>.
On 8/8/05, andrew <li...@pyroboy.com.au> wrote:
> Do you ever envisage m2 wrapping JSch to such an extent that the
> username and private key will be implied from the user's environment (ie
> not set in ~/.m2/settings.xml) and password from ssh-agent?

It does (should?) look for the username from $user.name and the
private key in $user.home/.ssh/id_dsa by default.

Passphrase from an ssh-agent is not currently possible under Java as
there isn't a way to talk to domain sockets (which ssh-agent uses).

> > You can use an external scp app by using the scpexe:// protocol.
> 
> Is this supported in m2 yet (see below)?

Yes, but omitted to mention that you need to:
a) add wagon-ssh-external-1.0-alpha-4.jar to $M2_HOME or
b) add the following to your POM (only works with m2 from SVN, but is
preferred from beta-1 on):
<build>
<extensions>
  <extension>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-ssh-external</artifactId>
    <version>1.0-alpha-4</version>
  </extenstion>
</extensions>

Hope this helps,
Brett

> 
> Thanks,
> ...andrew
> 
> $ m2 deploy:deploy
> [INFO] Using local copy of plugins.xml (plugin mappings) for group:
> 'org.apache.maven.plugins' from:
> /home/amm/.m2/repository/org/apache/maven/plugins/plugins.xml
> [INFO] maven-deploy-plugin: resolved to version 2.0-alpha-3 from local
> repository
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Building Distra
> [INFO]    task-segment: [deploy:deploy]
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] [deploy:deploy]
> [ERROR] Nonexistent component: org.apache.maven.wagon.Wagonscpexe
> [INFO]
> ----------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Diagnosis: Error deploying artifact
> [INFO]
> ----------------------------------------------------------------------------
> [ERROR] Cause:
> org.apache.maven.plugin.MojoExecutionException: Error deploying artifact
>         at
> org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:184)
>         at
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:361)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:472)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:453)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:435)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:127)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:186)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:292)
>         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:324)
>         at
> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>         at
> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by:
> org.apache.maven.artifact.deployer.ArtifactDeploymentException: Error
> deploying artifact:
>         at
> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:86)
>         at
> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:49)
>         at
> org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:172)
>         ... 16 more
> Caused by: org.apache.maven.wagon.TransferFailedException: Unsupported
> Protocol:
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:123)
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:92)
>         at
> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:72)
>         ... 18 more
> Caused by: org.apache.maven.wagon.UnsupportedProtocolException: Cannot
> find wagon which supports the requested protocol: scpexe
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.getWagon(DefaultWagonManager.java:82)
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:119)
>         ... 20 more
> Caused by:
> org.codehaus.plexus.component.repository.exception.ComponentLookupException:
> Component descriptor cannot be found in the component repository:
> org.apache.maven.wagon.Wagonscpexe.
>         at
> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:299)
>         at
> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:416)
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.getWagon(DefaultWagonManager.java:78)
>         ... 21 more
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Total time: < 1 second
> [INFO] Finished at: Mon Aug 08 15:39:19 EST 2005
> [INFO] Final Memory: 1M/3M
> [INFO]
> ----------------------------------------------------------------------------
> 
> --
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by andrew <li...@pyroboy.com.au>.
Hi,

Brett Porter wrote:
> This is probably because you need a passphrase or agent to connect
> using that key. Unfortunately this is not supported by Jsch yet.

After having a look at JSch it does not appear to interact with OpenSSH
(for example) of its own accord. It doesn't look in ~/.ssh and requires
you to pass in your private key, username and the like.

Do you ever envisage m2 wrapping JSch to such an extent that the
username and private key will be implied from the user's environment (ie
not set in ~/.m2/settings.xml) and password from ssh-agent?

> You can use an external scp app by using the scpexe:// protocol.

Is this supported in m2 yet (see below)?

Thanks,
...andrew

$ m2 deploy:deploy
[INFO] Using local copy of plugins.xml (plugin mappings) for group:
'org.apache.maven.plugins' from:
/home/amm/.m2/repository/org/apache/maven/plugins/plugins.xml
[INFO] maven-deploy-plugin: resolved to version 2.0-alpha-3 from local
repository
[INFO]
----------------------------------------------------------------------------
[INFO] Building Distra
[INFO]    task-segment: [deploy:deploy]
[INFO]
----------------------------------------------------------------------------
[INFO] [deploy:deploy]
[ERROR] Nonexistent component: org.apache.maven.wagon.Wagonscpexe
[INFO]
----------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
----------------------------------------------------------------------------
[INFO] Diagnosis: Error deploying artifact
[INFO]
----------------------------------------------------------------------------
[ERROR] Cause:
org.apache.maven.plugin.MojoExecutionException: Error deploying artifact
        at
org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:184)
        at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:361)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:472)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:453)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:435)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:127)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:186)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:292)
        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:324)
        at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by:
org.apache.maven.artifact.deployer.ArtifactDeploymentException: Error
deploying artifact:
        at
org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:86)
        at
org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:49)
        at
org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:172)
        ... 16 more
Caused by: org.apache.maven.wagon.TransferFailedException: Unsupported
Protocol:
        at
org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:123)
        at
org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:92)
        at
org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:72)
        ... 18 more
Caused by: org.apache.maven.wagon.UnsupportedProtocolException: Cannot
find wagon which supports the requested protocol: scpexe
        at
org.apache.maven.artifact.manager.DefaultWagonManager.getWagon(DefaultWagonManager.java:82)
        at
org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:119)
        ... 20 more
Caused by:
org.codehaus.plexus.component.repository.exception.ComponentLookupException:
Component descriptor cannot be found in the component repository:
org.apache.maven.wagon.Wagonscpexe.
        at
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:299)
        at
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:416)
        at
org.apache.maven.artifact.manager.DefaultWagonManager.getWagon(DefaultWagonManager.java:78)
        ... 21 more
[INFO]
----------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Mon Aug 08 15:39:19 EST 2005
[INFO] Final Memory: 1M/3M
[INFO]
----------------------------------------------------------------------------

--

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] deploy via scp

Posted by Brett Porter <br...@gmail.com>.
This is probably because you need a passphrase or agent to connect
using that key. Unfortunately this is not supported by Jsch yet.

You can use an external scp app by using the scpexe:// protocol.

- Brett

On 8/5/05, andrew <li...@pyroboy.com.au> wrote:
> Maven version: 2.0-beta-1-SNAPSHOT, and
> Maven version: 2.0-alpha-3
> 
> Hi,
> 
> I am attempting to deploy to our repository server via scp.
> 
> In ~/.m2/settings.xml I have:
> 
>   <servers>
>     <server>
>       <id>repos</id>
>       <username>amm</username>
>       <privateKey>/home/amm/.ssh/id_dsa</privateKey>
>     </server>
>   </servers>
> 
> and in pom.xml:
> 
>   <distributionManagement>
>     <repository>
>       <id>repos</id>
>       <url>scp://server/path/to/deploy/repos</url>
>     </repository>
>   </distributionManagement>
> 
> From a command line I can:
> 
> $ scp foo.xml server:/path/to/deploy/repos, OR
> $ scp foo.xml amm@server:/path/to/deploy/repos
> 
> without any trouble. I am caching my key's password with ssh-agent.
> 
> When I attempt to deploy I receive the following exceptions:
> 
> $ m2 deploy:deploy
> [INFO] Using local copy of plugins.xml (plugin mappings) for group:
> 'org.apache.maven.plugins' from:
> /home/amm/.m2/repository/org/apache/maven/plugins/plugins.xml
> [INFO] maven-deploy-plugin: resolved to version 2.0-alpha-3 from local
> repository
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Building Distra
> [INFO]    task-segment: [deploy:deploy]
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] [deploy:deploy]
> [INFO]
> ----------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Diagnosis: Error deploying artifact
> [INFO]
> ----------------------------------------------------------------------------
> [ERROR] Cause:
> org.apache.maven.plugin.MojoExecutionException: Error deploying artifact
>         at
> org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:184)
>         at
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:361)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:472)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:453)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:435)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
>         at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:127)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:186)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:292)
>         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:324)
>         at
> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>         at
> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by:
> org.apache.maven.artifact.deployer.ArtifactDeploymentException: Error
> deploying artifact:
>         at
> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:86)
>         at
> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:49)
>         at
> org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:172)
>         ... 16 more
> Caused by: org.apache.maven.wagon.TransferFailedException:
> Authentication failed:
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:185)
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:92)
>         at
> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:72)
>         ... 18 more
> Caused by:
> org.apache.maven.wagon.authentication.AuthenticationException: Cannot
> connect. Reason: Auth cancel
>         at
> org.apache.maven.wagon.providers.ssh.ScpWagon.openConnection(ScpWagon.java:164)
>         at
> org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:123)
>         at
> org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:151)
>         ... 20 more
> Caused by: com.jcraft.jsch.JSchException: Auth cancel
>         at com.jcraft.jsch.Session.connect(Unknown Source)
>         at com.jcraft.jsch.Session.connect(Unknown Source)
>         at
> org.apache.maven.wagon.providers.ssh.ScpWagon.openConnection(ScpWagon.java:158)
>         ... 22 more
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Total time: < 1 second
> [INFO] Finished at: Fri Aug 05 16:56:13 EST 2005
> [INFO] Final Memory: 1M/3M
> [INFO]
> ----------------------------------------------------------------------------
> 
> ScpWagon appears to be harvesting my username and key correctly (I get a
> different exception if these are not specified in settings.xml) but
> jsch.Session is barfing on the authentication.
> 
> Any ideas?
> 
> Is there any reason I need to have my username and key specified in
> settings.xml at all? Couldn't m2 just delegate to ssh (as for command
> line scp) by default?
> 
> Thanks,
> ...andrew
> --
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


[m2] ear task problem/bug?

Posted by Edward Yakop <ed...@tokuii.com>.
Maven version: 2.0-beta-1-SNAPSHOT  svn revision: 265679

Hi,

 
I am attempting to migrate an ear project from ant style to m2 project 
style.

In the high level project dependencies:

[ear] -depends-> [war]
  |
  |----depends-> [ejb] -depends-> [persistence]
                                      |
                                      |----depends-> [spring lib], 
[hibernate lib], etcs


--------------
pom.xml of ear
--------------
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tokuii.serverside.baseapp.ear</groupId>
  <artifactId>ear</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Baseapp - EAR</name>
  <packaging>ear</packaging>
  <dependencies>
    <dependency>
      <groupId>com.tokuii.serverside.baseapp.flash</groupId>
      <artifactId>war</artifactId>
      <version>1.0-SNAPSHOT</version>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>com.tokuii.serverside.baseapp.flash</groupId>
      <artifactId>ejb</artifactId>
      <version>1.0-SNAPSHOT</version>
      <type>ejb</type>
    </dependency>
  </dependencies>
</project>
--------------

--------------
pom.xml of war
--------------
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tokuii.serverside.baseapp.flash</groupId>
  <artifactId>war</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Baseapp - WAR</name>
  <packaging>war</packaging>
  <dependencies>
    <dependency>
      <groupId>servletapi</groupId>
      <artifactId>servletapi</artifactId>
      <version>2.3</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
</project>
--------------

--------------
pom.xml of ejb
--------------
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tokuii.serverside.baseapp.flash</groupId>
  <artifactId>ejb</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Baseapp - ejb</name>
  <packaging>ejb</packaging>
  <dependencies>
    <dependency>
      <groupId>com.tokuii.serverside.baseapp</groupId>
      <artifactId>persistence</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>jboss</groupId>
      <artifactId>jboss-j2ee</artifactId>
      <version>3.2.3</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
</project>

----------------------
pom.xml of persistence
----------------------
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tokuii.serverside.baseapp</groupId>
  <artifactId>persistence</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Baseapp - persistence</name>
  <packaging>jar</packaging>
  <dependencies>
    <dependency>
      <groupId>springframework</groupId>
      <artifactId>spring</artifactId>
      <version>1.2.4</version>
    </dependency>
    <dependency>
      <groupId>hibernate</groupId>
      <artifactId>hibernate</artifactId>
      <version>2.1.8</version>
    </dependency>
  </dependencies>
</project>

Questions:

1 How do I execute m2 to embed all the dependent artifacts into the ear 
and update the MANIFEST.MF of ejb project class path that the libraries 
are inside .ear file?

2 Is this a bug?

----------------------------- 
The generated application.xml
-----------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
    "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
    "http://java.sun.com/dtd/application_1_3.dtd">
<application>
  <display-name>ear</display-name>
  <module>
    <ejb>ejb-1.0-SNAPSHOT.jar</ejb>
  </module>
  <module>
    <web>
      <web-uri>war-1.0-SNAPSHOT.war</web-uri>
      <context-root>/war</context-root>
    </web>
  </module>
  <module>
    <java>hibernate-2.1.8.jar</java>
  </module>
  <module>
    <java>spring-1.2.4.jar</java>
  </module>
  <module>
    <java>persistence-1.0-SNAPSHOT.jar</java>
  </module>
</application>
------------------------------
  Q: 2.1 Why would the dependency all the dependency of persistence is 
included as "ejb-client" of ejb? None of hibernate, spring, persistence 
should be included inside application.xml?

     2.2 How do I make the <context-root>/war</context-root> to be any 
other name without modifying the artifactId?

and The ear file contains:
------------------------------
ejb-1.0-SNAPSHOT.jar
war-1.0-SNAPSHOT.war
hibernate-2.1.8.jar
spring-1.2.4.jar
...
------------------------------

     2.3 Shouldn't all dependent libraries of hibernate and spring to be 
included inside ear? If no, how do I configure ear/ejb task to do so?

     2.4 According to 
http://java.sun.com/j2ee/verified/packaging.html#checking end of 
paragraph. I should be able to configure the classpath inside 
ejb.jar/META-INF/MANIFEST.MF file. For example:

---------------------
META-INF/MANIFEST.MF:
---------------------
   Manifest-Version: 1.0
   Class-Path: spring-1.2.4.jar hibernate-2.1.8.jar ...
   Created-By: 1.4.2_05-b04 (Sun Microsystems Inc.)
-------

     3 How do I setup the existing ejb pom.xml in order for maven to 
generate "Class-Path" for all transitive dependency libraries?

Note: hibernate-2.1.6.pom, hibernate-2.1.7c.pom, hibernate-3.0.1.pom, 
hibernate-3.0.3.pom, hibernate-3.0.pom, and hibernate-2.1.8.pom is 
definitely broken:

This is 2.1.4:
----------------
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>2.1.4</version>
<dependencies>
<dependency>
<artifactId>commons-lang</artifactId>
<groupId>commons-lang</groupId>
<version>1.0.1</version>
</dependency>
<dependency>
<artifactId>dom4j</artifactId>
<groupId>dom4j</groupId>
<version>1.4</version>
</dependency>
<dependency>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
<version>1.0.3</version>
</dependency>
<dependency>
<artifactId>commons-beanutils</artifactId>
<groupId>commons-beanutils</groupId>
<version>1.6</version>
</dependency>
<dependency>
<artifactId>commons-collections</artifactId>
<groupId>commons-collections</groupId>
<version>3.0</version>
</dependency>
<dependency>
<artifactId>cglib-full</artifactId>
<groupId>cglib</groupId>
<version>2.0.1</version>
</dependency>
<dependency>
<artifactId>bcel</artifactId>
<groupId>bcel</groupId>
<version>5.0</version>
</dependency>
<dependency>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-jta</artifactId>
<version>DEV</version>
</dependency>
<dependency>
<groupId>odmg</groupId>
<artifactId>odmg</artifactId>
<version>3.0</version>
</dependency>
</dependencies>
</project>
----------------

and this is 2.1.8:
------------------
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>2.1.8</version>
</project>
------------------

Regards,
Edward


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org