> > That's fine. What I'm suggesting is simply that Maven creates enough > metadata when building a snapshot that the release plug-in can more or > less > just copy it to the released repository when necessary. Crucially though > it > won't cause it to be rebuilt.
Thanks. That makes it a little more clear. However, that's implies renaming. The artifacts get renamed when pubished to a release repo. So to extend the example we have been using, this artifact here: https://repository.apache.org/content/repositories/maven-snapshots-sonatype/org/apache/maven/maven-core/3.0-SNAPSHOT/maven-core-3.0-20101004.110147-683.jar Would have to get ranamed to something like: maven-core-3.0-alpha1 Or whatever the release naming of that project follows. To keep the same name between a snapshot/release repo, I am not entirely sure how that would work or what changes it would imply to snapshot/release repos. Others may be able to comment on that further. And I am pretty sure that the community in general is not really in favor of this kind of massaging of the artifacts from snapshot -> release. It invalidates your testing of said snapshot. I think it is crucial that the release artifact DOES get rebuilt. > That would be great, and the obvious place would be in MANIFEST.MF, but > the > format isn't rich enough to store all the information we'd need. What would be missing? Your pom says your using artifact 1.0-SNAPSHOT.jar. You go and find that jar, open it and find what revision. Do that for all snapshot jars you depend on. > Right - so you see this file: > https://repository.apache.org/content/repositories/maven-snapshots- > sonatype/org/apache/maven/maven-core/3.0-SNAPSHOT/maven-core-3.0- > 20101004.110147-683.pom > > All I'm suggesting is that in addition to the <groupId> and <artifactId> > tags that are attached to each <dependency> we *also* store something > like > <source><uri>http://svn.apache.org/blah/blah > </uri><version>1423</version></uri> > > That's it. Ok. So your talking about two things here. First, that maven store this information on a repository. The second is that maven would have to query this information during a build, and then update it own "extra information.xml file" to update its transtitive dependency information list and then deploy that list to the repository as well. And this would need to be a complete list of all transtive dependencies, not just direct ones. So now you can download that file, figure out what revision of all your transitive deps are and recreate the entire build. Now how would this work if a project has release and snapshot dependencies? I think you would only need to do this for snapshot deps. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
