Hey, >Here there first question comes - will Gradle be able to generate pom.xml >and upload artifact
Yes, gradle handles upload artifacts to maven repos and pom generation. Take a look at the maven plugin. The rest of your questions seems pretty much maven questions but let me try :) It seems that you're trying to develop a different naming scheme for maven snapshots. I'm afraid that's not going to work (unless you write your own maven...). For example: if you post process artifact names then artifact resolution will not work. In short, snapshots in maven work this way: you supply a version (e.g. 1.2.3-SNAPSHOT) and maven deals with the rest. If you want some project to depend on the snapshot, you only provide the short version: e.g. "I depend on 1.2.3-SNAPSHOT". > 1) Is it possible to upload artifact to Maven which file name is > A-1.0.0-SNAPSHOT-rREV_vYYYYDDMM_HHmm.jar, so that Maven users will see that > artifact as A-1.0.0-SNAPSHOT.jar? I don't think so. >2) Is it possible to process artifacts just after they have been downloaded, > so that B-1.0.0-SNAPSHOT.jar becomes > B-1.0.0-SNAPSHOT-rREV_YYYYDDMM_HHmm.jar? Ouch... For your own sanity, don't try it... :) > 3) At some moment I became concerned on whether my naming/versioning scheme > is sane at all, as there is no built-in support for it in Maven! However, > Gradle CI builds Gradle is a tool, not an artifact that you declare as dependency in your gradle/pom/ivy script. Therefore gradle can have whatever naming scheme we fancy. Hope that helps! Szczepan On Mon, Apr 18, 2011 at 3:40 AM, Alexander Kitaev <[email protected]> wrote: > Hello, > > I'm going to make use of Maven repository for all project in our company. > > There are both open and closed projects with complex dependencies between > them. All projects are multi-module ones and mostly all have to build both > ordinary artifacts and OSGi bundles, plus some complex "assemblies" that > users then download from the web. All projects are built by CI server. > > I tried to use Maven, but didn't like it. So, I'm looking at Gradle and > wonder whether it will be possible to implement the following scheme with > it: > > 1. Imagine there are company projects A and B, A depends on B. B uses some > component C, available in the central Maven repository. > > 2. When CI builds B, it generates version number for the build, let's say > "1.0.0-SNAPSHOT-r1024_v20110418_2000". > > 3. B build produces B-1.0.0-SNAPSHOT-r1024_v20110418_2000.jar, plus > *-source.jar and *-javadoc.jar. These jars I would like to a) upload to > Maven repository and b) put into zip archive named > B-1.0.0-SNAPSHOT-r1024_v20110418_2000.zip > > Here there first question comes - will Gradle be able to generate pom.xml > and upload artifact with such a "long" file name to Maven? Will this > artifact be treated properly in regards to version and its 'SNAPSHOT' type? > > AFAIU Maven uses its own way of generating version qualifier at the moment > it uploads artifact and it expects file to be named "B-1.0.0-SNAPSHOT.jar", > without any additional qualifiers. And "SNAPSHOT" is needed to let other > users of Maven use our artifacts as SNAPSHOT dependencies. > > 4. Now project A is built. It gets all its dependencies, and for B its > depenency is 'org.copmany:B:1.0.0-SNAPSHOT' - to always get the latest build > of B. > > For component C which is external, it receives "c-1.2.3-SNAPSHOT.jar" and > for B it will receive (assuming Maven repository is used) > B-1.0.0-SNAPSHOT.jar. Along with its own artifact, project A will have: > > A-1.0.0-SNAPSHOT-r2048_vYYYYDDMM_HHmm.jar > B-1.0.0-SNAPSHOT.jar > C-1.2.3-SNAPHSOT.jar > > And, as B's jar producing is under our control, we may make sure that its > Manifest contains all information necessary to rename it to > B-1.0.0-SNAPSHOT-rREV_vYYYYDDMM_HHmm.jar - and this is what I like to get! > > So, my questions are: > > 1) Is it possible to upload artifact to Maven which file name is > A-1.0.0-SNAPSHOT-rREV_vYYYYDDMM_HHmm.jar, so that Maven users will see that > artifact as A-1.0.0-SNAPSHOT.jar? What is the minimal configuration for that > might be? Is file have to be renamed just before upload? > > 2) Is it possible to process artifacts just after they have been downloaded, > so that B-1.0.0-SNAPSHOT.jar becomes > B-1.0.0-SNAPSHOT-rREV_YYYYDDMM_HHmm.jar? Is it possible to do it > transparently, by providing some a pattern? Configurable pattern of such > sort might be very useful for OSGi projects as OSGi bundle symbolic names > usually doesn't match Maven artifact names. > > 3) At some moment I became concerned on whether my naming/versioning scheme > is sane at all, as there is no built-in support for it in Maven! However, > Gradle CI builds use very similar file names (both for jars and distribution > zip), but I didn't find how (and whether) does it upload these jars to > Maven. > > Thanks a lot in advance! > > -- > View this message in context: > http://gradle.1045684.n5.nabble.com/Artifacts-repositories-and-version-numbers-tp4309829p4309829.html > Sent from the gradle-user mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email
