org.apache.maven.scm.NoSuchCommandScmException: No such command 'list' when the 
Perforce SCM Provider is used by the SCM Wagon in "maven deploy"
------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: SCM-496
                 URL: http://jira.codehaus.org/browse/SCM-496
             Project: Maven SCM
          Issue Type: Bug
          Components: maven-scm-provider-perforce
         Environment: Maven 2.2.1, jdk 1.6 SR16, Win32
            Reporter: Louis Lecaroz
            Priority: Critical
         Attachments: pom.xml

After having taken a look in the svn in trunk, the AbstractScmProvider & its 
implementations except Perforce implement the AbstractScmProvider.list() method.
As this method is called by the ScmWagon, & because it is not implemented in 
the PerforceScmProvider, it generates this exception (generated by the 
AbstractScmProvider.list() code ) :

Uploading: 
scm:perforce:lleca...@pperforce.server.com:1971://experiments/llecaroz/Maven/Repository/demo/foo/app/tp.sun.java-test-1/1.2-SNAPSHOT/tp.sun.java-test-1-1.2-20090903.105728-1.jar
[INFO] No password found, proceeding without it.
[DEBUG] No such command 'list'.
org.apache.maven.scm.NoSuchCommandScmException: No such command 'list'.
        at 
org.apache.maven.scm.provider.AbstractScmProvider.list(AbstractScmProvider.java:595)
        at 
org.apache.maven.scm.provider.AbstractScmProvider.list(AbstractScmProvider.java:579)
        at 
org.apache.maven.wagon.providers.scm.ScmWagon.checkOut(ScmWagon.java:371)
        at 
org.apache.maven.wagon.providers.scm.ScmWagon.putInternal(ScmWagon.java:285)
        at org.apache.maven.wagon.providers.scm.ScmWagon.put(ScmWagon.java:254)
        at 
org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:317)
        at 
org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:227)
        at 
org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:107)
        at 
org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:173)
        at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
        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.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 
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
        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 org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

So I was unable to use the Perforce SCM Provider as SCM Wagn as you will see in 
this simplified attached/POM(testcase) to reproduce the issue.
Don't forget to replace the url & username by a working one.

To run it : 
-detach this pom
-modify the url to a valid perforce server
-launch "maven deploy"

Tried with svn just by switching the extension from perforce into svn & 
modifying the url : no problem... as svn provider implements the list() method.
So the list() method needs to be implemented in the PerforceScmProvider as 
solution.

At this time from my understanding, no project can use perforce as repository.

Thx in advance
Louis

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to