Tomáš Zilvar created ARCHETYPE-483:
--------------------------------------

             Summary: Building a new 2.X archetype with JarMojo writes out a 
nonsensical warning
                 Key: ARCHETYPE-483
                 URL: https://issues.apache.org/jira/browse/ARCHETYPE-483
             Project: Maven Archetype
          Issue Type: Bug
          Components: Plugin
    Affects Versions: 2.3
            Reporter: Tomáš Zilvar
            Priority: Trivial


When packaging a new style 2.0 custom archetype JAR with JarMojo, the build 
issues a counter-intuitive warning:
{noformat}
[WARNING] Building an Old (1.x) Archetype: consider migrating it to current 2.x 
Archetype.
{noformat}

I suppose that it is because of an inverted if condition in 
JarMojo.checkArchetypeFile(File file)

{code:title=JarMojo.java}
package org.apache.maven.archetype.mojos;
//...
/**
 * Build a JAR from the current Archetype project.
 *
 * @author rafale
 */
@Mojo( name = "jar", defaultPhase = LifecyclePhase.PACKAGE, requiresProject = 
true )
public class JarMojo extends AbstractMojo
{
    //...
     private void checkArchetypeFile( File jarFile ) throws 
MojoExecutionException
     {
         try
         {
             if ( archetypeArtifactManager.isFileSetArchetype( jarFile ) )
             {
                 checkFileSetArchetypeFile( jarFile );
             }
             else if ( !archetypeArtifactManager.isOldArchetype( jarFile ) )
             {
                 getLog().warn( "Building an Old (1.x) Archetype: consider 
migrating it to current 2.x Archetype." );
             }
             else
             {
                 throw new MojoExecutionException( "The current project does 
not built an archetype" );
             }
         }
         catch ( UnknownArchetype ua )
         {
             throw new MojoExecutionException( ua.getMessage(), ua );
         }
}    
    //...
}
{code}

The condition {{!archetypeArtifactManager.isOldArchetype( jarFile )}} is 
negated, therefore it issues the warning if the jar *is not* an old archetype, 
which makes it downright confusing for new users trying to build a new 
archetype. On the other hand, when the archetype actually *is* old, it does not 
warn at all.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to