You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Elliot Metsger (JIRA)" <ji...@codehaus.org> on 2014/01/13 18:21:49 UTC

[jira] (WAGON-393) Maven 2.2.1 fails to build when build extension uses Wagon provider > 2.2

    [ https://jira.codehaus.org/browse/WAGON-393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=338622#comment-338622 ] 

Elliot Metsger commented on WAGON-393:
--------------------------------------

This is major problem, because you cannot support both Maven 2 and Maven 3 builds if you use SCP to deploy releases.  Here's why:

When using Maven 3.1.1 to deploy to a clean repository (no artifacts from your project have yet been deployed locally or remotely) using 'scp', you get this exception:

{code}
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.1:deploy (default-deploy) on project dcs-registry-parent: Failed to deploy artifacts/metadata: No connector available to access repository dc.public.snapshots (scp://maven.dataconservancy.org/data/maven-dc/public/snapshots/) of type default using the available factories WagonRepositoryConnectorFactory -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.1:deploy (default-deploy) on project dcs-registry-parent: Failed to deploy artifacts/metadata: No connector available to access repository dc.public.snapshots (scp://maven.dataconservancy.org/data/maven-dc/public/snapshots/) of type default using the available factories WagonRepositoryConnectorFactory
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
	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.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to deploy artifacts/metadata: No connector available to access repository dc.public.snapshots (scp://maven.dataconservancy.org/data/maven-dc/public/snapshots/) of type default using the available factories WagonRepositoryConnectorFactory
	at org.apache.maven.plugin.deploy.DeployMojo.deployProject(DeployMojo.java:282)
	at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:169)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 19 more
Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts/metadata: No connector available to access repository dc.public.snapshots (scp://maven.dataconservancy.org/data/maven-dc/public/snapshots/) of type default using the available factories WagonRepositoryConnectorFactory
	at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:143)
	at org.apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.java:171)
	at org.apache.maven.plugin.deploy.DeployMojo.deployProject(DeployMojo.java:240)
	... 22 more
Caused by: org.eclipse.aether.deployment.DeploymentException: Failed to deploy artifacts/metadata: No connector available to access repository dc.public.snapshots (scp://maven.dataconservancy.org/data/maven-dc/public/snapshots/) of type default using the available factories WagonRepositoryConnectorFactory
	at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:292)
	at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:268)
	at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:413)
	at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:139)
	... 24 more
Caused by: org.eclipse.aether.transfer.NoRepositoryConnectorException: No connector available to access repository dc.public.snapshots (scp://maven.dataconservancy.org/data/maven-dc/public/snapshots/) of type default using the available factories WagonRepositoryConnectorFactory
	at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:193)
	at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:288)
	... 27 more
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
{code}

To fix this error, you have to add a build extension:
{code}
      <build>

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

      </build>
{code}

The problem is that this extension is incompatible with Maven 2.2.1:

{code}
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Unable to initialise extensions
Component descriptor role: 'com.jcraft.jsch.UIKeyboardInteractive', implementation: 'org.apache.maven.wagon.providers.ss
h.jsch.interactive.PrompterUIKeyboardInteractive', role hint: 'default' has a hint, but there are other implementations
that don't
{code}

One option would be to use a combination of the maven build helper plugin and profiles to only add the <extension> when using Maven 3.1.1, but profiles don't allow you to modify the build extensions.

                
> Maven 2.2.1 fails to build when build extension uses Wagon provider > 2.2
> -------------------------------------------------------------------------
>
>                 Key: WAGON-393
>                 URL: https://jira.codehaus.org/browse/WAGON-393
>             Project: Maven Wagon
>          Issue Type: Bug
>          Components: wagon-ssh
>            Reporter: Michael Osipov
>            Priority: Critical
>
> I use the wagon-maven-plugin to upload files to SF.net. Since Maven 3 does not have SFTP support built-in I have declared this:
> {code}
> 		<extensions>
> 			<extension>
> 				<groupId>org.apache.maven.wagon</groupId>
> 				<artifactId>wagon-ssh</artifactId>
> 				<version>2.4</version>
> 			</extension>
> 		</extensions>
> {code}
> Runs fine with Maven 3 but when running with Maven 2.2.1 it says:
> {noformat}
> [ERROR] BUILD ERROR
> [INFO] ------------------------------------------------------------------------
> [INFO] Unable to initialise extensions
> Component descriptor role: 'com.jcraft.jsch.UIKeyboardInteractive', implementation: 'org.apache.maven.wagon.providers.ss
> h.jsch.interactive.PrompterUIKeyboardInteractive', role hint: 'default' has a hint, but there are other implementations
> that don't
> {noformat}
> I went down all versions to 2.2 and it worked. So there must something wrong from 2.2 to 2.3.
> A demo project is available.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira