Return-Path: Delivered-To: apmail-incubator-ivy-user-archive@locus.apache.org Received: (qmail 43560 invoked from network); 30 Apr 2007 21:26:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Apr 2007 21:26:20 -0000 Received: (qmail 5663 invoked by uid 500); 30 Apr 2007 21:26:26 -0000 Delivered-To: apmail-incubator-ivy-user-archive@incubator.apache.org Received: (qmail 5549 invoked by uid 500); 30 Apr 2007 21:26:26 -0000 Mailing-List: contact ivy-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ivy-user@incubator.apache.org Delivered-To: mailing list ivy-user@incubator.apache.org Received: (qmail 5535 invoked by uid 99); 30 Apr 2007 21:26:25 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Apr 2007 14:26:25 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of dkroot1@gmail.com designates 66.249.82.231 as permitted sender) Received: from [66.249.82.231] (HELO wx-out-0506.google.com) (66.249.82.231) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Apr 2007 14:26:18 -0700 Received: by wx-out-0506.google.com with SMTP id i26so2245818wxd for ; Mon, 30 Apr 2007 14:25:55 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:date:from:reply-to:x-priority:message-id:to:subject:in-reply-to:references:mime-version:content-type:content-transfer-encoding; b=NLiolygVSA6EV50V5o2LNsNQaqEBj3xL5hrImNUPa8jwbjIC96BGxLe/n/nvDvTkjJV1iDTh6Vtjy5UtEbG8gyZcFSKJKZog/vFyCBWNjjyfr8QYpJbHySqoogn3E29hSwdrYGSn571NhaxZzje0JMsp2Tu7JyI41hhNibujPio= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:date:from:reply-to:x-priority:message-id:to:subject:in-reply-to:references:mime-version:content-type:content-transfer-encoding; b=B1g9t2gsln1zV2forbzdkS+CWlwMwHLNyZhthSwkaMegxHietCv3u0XCeE9I/miPy6w8X5N16wJi7M/FpDKO2AAOWhTgMvW3znTaGYcCL5NWJWumOklBtAglhsGe1pbubCdfufgheITdwRxDKoKNhi5po2oF69zGW1QSUXpj00Y= Received: by 10.70.103.12 with SMTP id a12mr4815476wxc.1177968355758; Mon, 30 Apr 2007 14:25:55 -0700 (PDT) Received: from ?165.112.121.68? ( [165.112.121.68]) by mx.google.com with ESMTP id 15sm4478032wrl.2007.04.30.14.25.53; Mon, 30 Apr 2007 14:25:53 -0700 (PDT) Date: Mon, 30 Apr 2007 17:25:41 -0400 From: Dmitriy Korobskiy Reply-To: dkroot1@gmail.com X-Priority: 3 (Normal) Message-ID: <847297107.20070430172541@gmail.com> To: Xavier Hanin Subject: Re[2]: Newbie - Maven 1, Cruise Control and Dependency Management... + Ivy? In-Reply-To: <635a05060704250940v4d743b04ma6222a3c682d477@mail.gmail.com> References: <635a05060704250940v4d743b04ma6222a3c682d477@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hi, Xavier Re: your e-mail from Wednesday, April 25, 2007 12:40 PM > On 4/25/07, dhay@lexmark.com wrote: >> Hi, >> >> We are currently using Maven 1 with Cruise Control, and are running into >> CC's lack of Dependency Management. >> >> We have multiple projects, many, but not all, of which inherit from a >> common parent project. We also have multiple versions of these projects. >> >> Say we have the parent Project A upon which Projects B, C, D and E all >> depend. Then we have Project F which depends on B, C & D. Needless to >> say, CC has no idea that it needs to build A, B, C, D, E and then F. >> >> I'm completely new to Ivy - can it help us here? Can it handle all these >> dependencies, including different versions of the Projects? eg F v 1 >> depends on B, C, D version 1, but F v2 depends on B v1, C v2 & D v1. > Quite a long time ago there was an Ivy plugin for CC. The problem is > that this plugin is not maintained anymore, and works only with rather > old CC version (2.3 if I remember well). An Ivy user also wrote some > kind of plugin for CC integrating Ivy in another way. You can find > details about that here: > http://www.jaya.free.fr/ivycruise.html > Even if it doesn't work out of the box for you, this can at least be a > good basis to implement dependent builds in CC. > Now for the pure Ivy part. In Ivy you can define your dependencies > like you expressed, no problem. I guess that by v1 and v2 you are > talking about branches more than static versions (otherwise I see no > value with dependent builds, if dependencies are static). Ivy supports > branches pretty well [1], so no problem with that. > But if you are satisifed with your build environment and just want to > use Ivy to introduce dependent builds in CC, maybe you can even use > Ivy pluggable metadata parser mechanism. Indeed Ivy supports maven 2 > metadata out of the box, so supporting your maven 1 metadata shouldn't > be too complex to handle. > HTH, > Xavier > [1] http://incubator.apache.org/ivy/doc/ivyfile/dependency.html >> >> cheers, >> >> David >> >> David,- I believe what you are asking for could be implemented quite simply via CruiseControl's modifications with some Ivy help, perhaps, but without extra complications or the Cruise Ivy plug-in. 1. Create Cruise projects for your branches (F v1, F v2, C v1, C v2) 2. In your Cruise builds - publish project artifacts upon success into a local common Ivy repository. Use Ivy's branch attribute or other means to distinguish integration builds from releases. 3. Make F (Ivy-enabled) build consume appropriate (latest) B, C, D integration builds. 4. In CruiseControl config - use , etc. in F's As a result, after Cruise builds, say, a C branch successfully, a consuming F branch build would kick off. Dmitriy <1-127-441 @ICQ, DKroot @Skype, DKroot1 @AIM, dkroot1_at_gmail_dot_com @Google Talk>