Your described scenario is the common scenario for Maven. You should never change (or delete) a release. Your repo manager should always be configured to deny that.
You're describing the two possible solutions. Either bump the version on all artifacts produced, or just deploy the artifact that has changed (with a new version number). Which way to go depends on the version management choice of your project. Most open source projects simply deploy a new version of all artifacts, as they go together as a family. But from a CM perspective that can sometimes be confusing as, for example, it means that the API version is bumped while there are no changes to it (in case of a bug fix in the core implementation). But having a separate version lifecycle for different parts of your application will increase the release management work. Personally I'm in favor of having separate release lifecycle for at least the API if it's clearly separate (like for a web service's wsdl). But having separate releases for different parts of an applications internal stuff most often is just too cumbersome. /Anders On Sun, Apr 8, 2012 at 07:27, Rajwinder Makkar <[email protected]> wrote: > Here is a dev scenario : > > We are using maven 3 + artifactory + microst TFS server > > We dont want to over write an existing version of an artifact in our > company repo , so the the consumers of artifacts should not be surprised > all the sudden when producers update artifact. > > Now this can simply be done by removing delete permissions in artifactory > but then that causes another problem. In multi module maven project if one > module changes then either dev need to modify version on all artifacts ( > which doesnt make sense ) or then need to modify individual pom and publish > only the artifact that is changes * which again is not manageable ) > > So need some advice on how this can be handled ? > > I have couple of thoughts : > > - Before running mvn command , write some thing custom to go through all > pom's and query artifactory is version of artifact exist. if yes then dont > compile. Basically compile only artifacts who version doesnt exist in > artifactory using "mvn -pl " > > - Try Jenkins , I know jenkins is aware of modules in project , but not > sure if it intelligent enough to compile only those which are changed ? > > Please advice > > -Raj --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
