Hello,

 
I'm having difficulties getting the maven-archetype-plug-in to work with an 
internal repository. The problem seems to be that it cannot locate the RELEASE 
version of this plugin when given an internal repository. I've copied the error 
I get to the end of this email together with my settings.xml file. I have tried 
various configurations and workarounds. I have maven configured to 
<mirrorOf>*</mirrorOf> which points to my internal repo and I have tried 
combining this with a profile that uses this mirror for a <pluginRepository> to 
no avail. The only workaround which works for me is to specify the fully 
qualified archetype command which locks down the version of both the archetype 
plugin and the archetype rather than using the metadata to determine the 
RELEASE versions:
 
e.g.
 
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:create 
-DartifactId=new-proj -DgroupId=org.mycompany -DpackageId=org.mycompany 
-DarchetypeVersion=1.0
 
This is executed in a directory that does not have a pom.xml file. I can get 
the list of available archetypes from the generate goal if I execute mvn 
archetype:generate in a directory that has a pom.xml, which defines the plugin 
and its version as a build dependency, but then it bombs out when I select an 
archetype because it cannot find the RELEASE version of that archetype (even 
though it exists in the internal repo).
 
Now, as far as I can see, the metadata in my internal repository matches the 
metadata in central so I'm struggling to see what's going wrong. I should note 
that my internal repository is generated by running the archetype and other 
plugins in an environment with access to central and then I copy the local repo 
from .m2 into another folder which acts as an internal repository. Does this 
method not provide appropriate metadata, or is Maven for some reason always 
going to Central to determine the release version of this plugin?  I should 
note that I have also tried the -DremoteRepositories=file://<local-repo-dir> 
flag but this doesn't seem to have much effect.
 
This behavior is consistent in Maven 2.0.9/Archetype plugin 2.0-alpha-4 and 
Maven 2.1.0-M1. I have read various FAQs and bug reports about this being fixed 
but I'm still having difficulties so I'd be grateful for some suggestions or a 
working configuration.
 
Here's the config I've tried thus far:
 
My settings.xml (I get the same failure case when the profile is switched off 
or commented and have tried both direct/indirect urls in the profile repository 
<url>'s):
 
<mirror>      <id>mirrorId</id>      <mirrorOf>*</mirrorOf>      <name>Human 
Readable Name for this Mirror.</name>            
<url>file://C:/<local-repo-dir></url>
</mirror>
 
<profile>      <id>internal-repo</id>      <repositories>        <repository>   
        <id>central-repo</id>           <url>http://dummy-url</url>           
<!-- <url>file:///C:/<local-repo-dir></url> -->           <releases>            
   <enabled>true</enabled>               <updatePolicy/>               
<checksumPolicy/>           </releases>           <snapshots>              
<enabled>true</enabled>              <updatePolicy/>              
<checksumPolicy/>           </snapshots>           <layout/>         
</repository>      </repositories>            <pluginRepositories>       
<pluginRepository>         <id>central-plugin-repo</id>          
<url>http://dummy-url</url>           <!-- 
<url>file:///C:/<local-repo-dir></url> -->           <releases>                
<enabled>true</enabled>                <updatePolicy/>                
<checksumPolicy/>           </releases>           <snapshots>                
<enabled>true</enabled>                <updatePolicy/>                
<checksumPolicy/>            </snapshots>             <layout/>       
</pluginRepository>      </pluginRepositories>    </profile>   
 
Here's the error:
 
----------------------------------
 
[INFO] Scanning for projects...[INFO] Searching repository for plugin with 
prefix: 'archetype'.[DEBUG] Loading plugin prefixes from group: 
org.apache.maven.plugins[INFO] org.apache.maven.plugins: checking for updates 
from central-plugin-repo[DEBUG] repository metadata for: 
'org.apache.maven.plugins' could not be found on repository: 
central-plugin-repo[INFO] org.apache.maven.plugins: checking for updates from 
central[DEBUG] repository metadata for: 'org.apache.maven.plugins' could not be 
found on repository: central[DEBUG] Loading plugin prefixes from group: 
org.codehaus.mojo[INFO] org.codehaus.mojo: checking for updates from 
central-plugin-repo[DEBUG] repository metadata for: 'org.codehaus.mojo' could 
not be found on repository: central-plugin-repo[INFO] org.codehaus.mojo: 
checking for updates from central[DEBUG] repository metadata for: 
'org.codehaus.mojo' could not be found on repository: central[INFO] artifact 
org.apache.maven.plugins:maven-archetype-plugin: checking for updates from 
central-plugin-repo[DEBUG] repository metadata for: 'artifact 
org.apache.maven.plugins:maven-archetype-plugin' could not be found on 
repository: central-plugin-repo[INFO] artifact 
org.apache.maven.plugins:maven-archetype-plugin: checking for updates from 
central[DEBUG] repository metadata for: 'artifact 
org.apache.maven.plugins:maven-archetype-plugin' could not be found on 
repository: central[DEBUG] maven-archetype-plugin: using locally installed 
snapshot[DEBUG] Artifact not found - using stub model: Unable to determine the 
latest version
 
  org.apache.maven.plugins:maven-archetype-plugin:pom:LATEST
 
[DEBUG] Using defaults for missing POM 
org.apache.maven.plugins:maven-archetype-plugin:pom:LATEST[DEBUG] 
maven-archetype-plugin: using locally installed snapshot[DEBUG] Artifact not 
found - using stub model: Unable to determine the release version
 
  org.apache.maven.plugins:maven-archetype-plugin:pom:RELEASE
 
[DEBUG] Using defaults for missing POM 
org.apache.maven.plugins:maven-archetype-plugin:pom:RELEASE[INFO] 
------------------------------------------------------------------------[ERROR] 
BUILD ERROR[INFO] 
------------------------------------------------------------------------[INFO] 
The plugin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or 
no valid version could be found[INFO] 
------------------------------------------------------------------------[DEBUG] 
Traceorg.apache.maven.lifecycle.LifecycleExecutionException: The plugin 
'org.apache.maven.plugins:maven-archetype-plugin' does not exist or no valid 
version could be found        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1303)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor(DefaultLifecycleExecutor.java:1542)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.segmentTaskListByAggregationNeeds(DefaultLifecycleExecutor.java:405)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:137)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)       
 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)        at 
org.apache.maven.cli.MavenCli.main(MavenCli.java:287)        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)Caused by: 
org.apache.maven.plugin.version.PluginVersionNotFoundException: The plugin 
'org.apache.maven.plugins:maven-archetype-plugin' does not exist or no valid 
version could be found        at 
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:229)
        at 
org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:91)
        at 
org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.java:171)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1274)
        ... 14 more[INFO] 
------------------------------------------------------------------------[INFO] 
Total time: < 1 second[INFO] Finished at: Sat Jan 17 12:09:10 GMT 2009[INFO] 
Final Memory: 2M/30M[INFO] 
------------------------------------------------------------------------
 
---------------------------------------------------
 
In my local repository within the 
.m2\repository\org\apache\maven\plugins\maven-archetype-plugin directory, Maven 
creates two files for both of the repositories in the profile, here's the 
output for maven-metadata-central-plugin-repo.xml (this output is identical in 
the other xml file):
 
<?xml version="1.0" encoding="UTF-8"?><metadata>  
<groupId>org.apache.maven.plugins</groupId>  
<artifactId>maven-archetype-plugin</artifactId></metadata>
 
In the directory above (.m2\repository\org\apache\maven\plugins) the same xml 
file is generated with this output:
 
<?xml version="1.0" encoding="UTF-8"?><metadata />
 
 
I'd be most grateful for any comments because while I have something working, 
it would be more comforting to have it working in a manner where it can 
determine the RELEASE version automatically from my internal repository.
 
Regards,
 
Ross.
_________________________________________________________________
Cut through the jargon: find a PC for your needs.
http://clk.atdmt.com/UKM/go/130777504/direct/01/

Reply via email to