Return-Path: X-Original-To: apmail-ant-ivy-user-archive@www.apache.org Delivered-To: apmail-ant-ivy-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4E560C0F4 for ; Thu, 17 May 2012 04:54:58 +0000 (UTC) Received: (qmail 86671 invoked by uid 500); 17 May 2012 04:54:57 -0000 Delivered-To: apmail-ant-ivy-user-archive@ant.apache.org Received: (qmail 86072 invoked by uid 500); 17 May 2012 04:54:47 -0000 Mailing-List: contact ivy-user-help@ant.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ivy-user@ant.apache.org Delivered-To: mailing list ivy-user@ant.apache.org Delivered-To: moderator for ivy-user@ant.apache.org Received: (qmail 56664 invoked by uid 99); 16 May 2012 17:19:08 -0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of bha@nwlink.com designates 64.255.237.172 as permitted sender) Message-ID: <4FB3E16F.6010701@nwlink.com> Date: Wed, 16 May 2012 10:18:39 -0700 From: Brian Anderson User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: ivy-user@ant.apache.org Subject: IvyDE workspace resolver & classpath container not playing well with AndroidDependencies classpath container... Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org I am using Ivy 2.3.0 and IvyDE (2.2.0beta1) together with the Android SDK (rev 19) to manage dependencies in a collection of Android projects. I have multiple Android projects, each with an ivy.xml file describing dependencies. Some of these Android projects are so-called Android library projects, others are Android application projects. My goal is to produce artifacts from Android library projects that can be published and subsequently used in another Android project as a dependency via Ivy. (Strictly speaking, Android library projects currently have no exportable jar artifact. The claim is that this will be supported in future revs of the Android SDK. None the less, the SDK does produce a "classes.jar" file that I am using as the library project artifact. This is working for my purposes.) I have more or less been successful in accomplishing this...I can produce artifacts from library projects (i.e. "foo.jar"), publish them to a Nexus repo and subsequently use these artifacts in another Android project by declaring an appropriate dependency in ivy.xml associated with the referring Android project. I have a small Ant build wrapper that resolves dependencies and retrieves the resolved dependencies, placeing them into the proper place in the referring Android project (libs/) such that the stock Android SDK Ant build can pick them up and use them. All is well. Of course, I would like all of this to work in Eclipse via IvyDE when I am working on a collection of Android projects and library projects that they depend on within a workspace. Having recently discovered the IvyDE workspace resolver, I elected to try this to manage dependencies between Android projects and dependent library projects. Note that I am trying to avoid having the Android project declare its dependency on a library project using the stock Android SDK mechanism (via project.properties). If I can avoid having to declare Android project library dependencies via the stock Android SDK mechanisms I can avoid having to modify my project files when working in Eclipse versus when working with the command line build. I have setup IvyDE to retrieve dependencies into the libs/ directory. I have done this by editing the Ivy classpath container configuration as follows: - Build the classpath with: retrieved artifacts - Retrieve pattern: libs/[artifact]-[revision].[ext] - Delete old retrieved artifacts: true - Types: * I have also enabled "Resolve dependencies in workspace" and ensured that my ivy.xml files have a status="integration" per the IvyDE workspace resolver instructions. This configuration ensures that the AndroidDependencies classpath container (provided by the Android SDK) will properly pickup project dependencies from the libs/ directory. This works fine for external dependencies (given that there is an actual artifact that can be copied into the libs/ directory for the AndroidDependencies classpath container to pick up), but not with Android library project dependencies that the workspace resolver deals with. The IvyDE workspace resolver appears to be working correctly as far as placing workspace dependencies into the Ivy classpath container, but there is no apparent way to insert a reference into the AndroidDependencies classpath container so that the project will build correctly with the library project dependencies. I suppose one might suggest that this is a deficiency with the AndroidDependencies classpath container. Another way would be to have the workspace resolver somehow inject an artifact from the workspace dependency that can be "retrieved" and copied via a retrieve pattern into the libs/ directory for the AndroidDependencies classpath container to pickup. I'm not clear what the kind of reference the workspace resolver injects into the Ivy classpath container. Any insight appreciated. ba