Maven Archetype
  1. Maven Archetype
  2. ARCHETYPE-327

Inadequate error diagnosis for archetype problems

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0-alpha-5
    • Fix Version/s: 2.0
    • Component/s: Creator
    • Labels:
      None
    • Environment:
      JDK 6u21, Ubuntu, Maven 3.0 beta 3.
    • Patch Submitted:
      Yes
    • Number of attachments :
      2

      Description

      See https://netbeans.org/bugzilla/show_bug.cgi?id=190033 for background. If you run the command listed there with a clean repository under Maven 3.0 beta 3, you get an error, but maven-archetype-plugin does not really help you track it down. Turns out there is a ZipException due to a *.jar file actually being an HTTP error message, but the closest you get is

      ...
      [DEBUG] Found archetype org.codehaus.mojo.archetypes:webapp-javaee6:1.1 in cache: ~/.m2/repository/org/codehaus/mojo/archetypes/webapp-javaee6/1.1/webapp-javaee6-1.1.jar
      [ERROR] Failed to close zipFile
      ...
      org.apache.maven.plugin.MojoFailureException: The defined artifact is not an archetype
          at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:204)
          at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
          at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      

      With the attached patch, you get more information:

      ...
      [DEBUG] checking archetype status on ~/.m2/repository/org/codehaus/mojo/archetypes/webapp-javaee6/1.1/webapp-javaee6-1.1.jar
      ...
      [DEBUG] failed
      org.apache.maven.archetype.exception.UnknownArchetype: java.util.zip.ZipException: error in opening zip file
      	at org.apache.maven.archetype.common.DefaultArchetypeArtifactManager.getArchetypeZipFile(DefaultArchetypeArtifactManager.java:172)
      	at org.apache.maven.archetype.common.DefaultArchetypeArtifactManager.isOldArchetype(DefaultArchetypeArtifactManager.java:263)
      	at org.apache.maven.archetype.ui.DefaultArchetypeGenerationConfigurator.configureArchetype(DefaultArchetypeGenerationConfigurator.java:142)
      	at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:188)
      ...
      org.apache.maven.plugin.MojoFailureException: The defined artifact is not an archetype
      	at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:204)
      	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      	... 19 more
      Caused by: org.apache.maven.archetype.exception.ArchetypeGenerationConfigurationFailure: The defined artifact is not an archetype
      	at org.apache.maven.archetype.ui.DefaultArchetypeGenerationConfigurator.configureArchetype(DefaultArchetypeGenerationConfigurator.java:154)
      	at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:188)
      ...
      
      1. ARCHETYPE-327.diff
        0.7 kB
        Jesse Glick
      2. maven-archetype-plugin-diagnosis.diff
        3 kB
        Jesse Glick

        Activity

        Hide
        Herve Boutemy added a comment -

        your patch on CreateProjectFromArchetypeMojo doesn't compile (MojoFailureException(Exception, String) constructor does not exist)

        the other parts of your patch seem partially redundant with actual code, which already taces some failures

        can you check if you can provide a unit test?

        Show
        Herve Boutemy added a comment - your patch on CreateProjectFromArchetypeMojo doesn't compile (MojoFailureException(Exception, String) constructor does not exist) the other parts of your patch seem partially redundant with actual code, which already taces some failures can you check if you can provide a unit test?
        Hide
        Jesse Glick added a comment -

        It compiled when I submitted it, if you include the POM change (MNG-3279) but I could use initCause instead. Seems various things changed in SVN since then so I have recreated the patch.

        Difficult to reproduce original problem since someone cleaned up http://repository.codehaus.org/org/codehaus/mojo/ so that the HTTP redirect bug is no longer manifested. However this seems to demonstrate the lack of a full stack trace without the patch:

        $ mvn -DarchetypeGroupId=bogus -DarchetypeArtifactId=bogus -DarchetypeVersion=1.0 -DgroupId=test -DartifactId=test-ARCHETYPE-327 --errors org.apache.maven.plugins:maven-archetype-plugin:2.0-SNAPSHOT:generate
        ...
            at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
        Caused by: org.apache.maven.plugin.MojoFailureException: The desired archetype does not exist (bogus:bogus:1.0)
            at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:205)
            at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
            at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195)
            ... 19 more
        ...
        

        and with the patch:

        ...
            at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
        Caused by: org.apache.maven.plugin.MojoFailureException: The desired archetype does not exist (bogus:bogus:1.0)
            at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:204)
            at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
            at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195)
            ... 19 more
        Caused by: org.apache.maven.archetype.exception.UnknownArchetype: The desired archetype does not exist (bogus:bogus:1.0)
            at org.apache.maven.archetype.ui.DefaultArchetypeGenerationConfigurator.configureArchetype(DefaultArchetypeGenerationConfigurator.java:124)
            at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:188)
            ... 21 more
        ...
        

        which is more likely to be useful.

        Show
        Jesse Glick added a comment - It compiled when I submitted it, if you include the POM change ( MNG-3279 ) but I could use initCause instead. Seems various things changed in SVN since then so I have recreated the patch. Difficult to reproduce original problem since someone cleaned up http://repository.codehaus.org/org/codehaus/mojo/ so that the HTTP redirect bug is no longer manifested. However this seems to demonstrate the lack of a full stack trace without the patch: $ mvn -DarchetypeGroupId=bogus -DarchetypeArtifactId=bogus -DarchetypeVersion=1.0 -DgroupId=test -DartifactId=test-ARCHETYPE-327 --errors org.apache.maven.plugins:maven-archetype-plugin:2.0-SNAPSHOT:generate ... at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.MojoFailureException: The desired archetype does not exist (bogus:bogus:1.0) at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:205) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195) ... 19 more ... and with the patch: ... at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.MojoFailureException: The desired archetype does not exist (bogus:bogus:1.0) at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:204) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195) ... 19 more Caused by: org.apache.maven.archetype.exception.UnknownArchetype: The desired archetype does not exist (bogus:bogus:1.0) at org.apache.maven.archetype.ui.DefaultArchetypeGenerationConfigurator.configureArchetype(DefaultArchetypeGenerationConfigurator.java:124) at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:188) ... 21 more ... which is more likely to be useful.
        Hide
        Herve Boutemy added a comment -

        patch applied in r1003942
        thank you

        Show
        Herve Boutemy added a comment - patch applied in r1003942 thank you

          People

          • Assignee:
            Herve Boutemy
            Reporter:
            Jesse Glick
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: