[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [virgo-dev] Build System and .classpath files
|
Interesting - thanks.
The way we keep .classpath files in step is to use the "update dependency" script to change dependency version numbers.
A couple of comments on the approach below:
* In general, we try to avoid build targets modifying check-in artifacts as that can cause interference between developers and other issues. (We still regret the generated manifests which are checked in, typically we have to discard spurious changes before committing.)
* Hacking ivy.jar is fragile as it could easily break when ivy was upgraded.
Glyn
On 15 Jul 2010, at 15:45, Patsy Phelan wrote:
> Hi,
> We had the same issues here but we modified the then "spring-build" to
> include a "eclipse" target which uses ant/ivy to resolve the
> dependencies and update the .classpath files for eclipse. At the our
> root level build (build-all) we can iterate all the sub-bundles and
> update the .classpath files.
>
> It did mean adding a new "task" into the ivy.jar that was present in the
> spring-build/lib directory. This was un-jar'd, goto the folder
> org/apache/ivy/ant, new class added, antlib.xml updated to reflect the
> new EclipseClasspath class, and re-jar'd again.
>
> I would have to look for the java file for the EclipseClasspath but in
> the meantime, I have attached the decompiled version of it.
> (EclipseClasspath.jad). It was build agains't the ivy jar we had so
> there was not much problems getting it to a class file.
>
> The antlib.xml file in the ivy.jar was updated to include this :
>
> <taskdef name="eclipse"
> classname="org.apache.ivy.ant.EclipseClasspath"/>
>
>
> Then some slight modification in the spring-build/common/common.xml to
> add a new target:
>
> <!-- Generate Eclipse .classpath file from ivy dependencies -->
> <target name="eclipse" description="Updates eclipse classpath."
> depends="ivy.init">
> <ivy:resolve conf="test" />
> <ivy:eclipse conf="test" />
> </target>
>
> At this point you can add this as a "depends" to other more complex
> targets. So for us this works quite well, the developers are used to
> "ant clean eclipse jar" and so into the GUIs they go. Of course,
> everywhere you see spring-build start to think virgo-build.
>
> Hope it helps,
>
> ~Patsy
>
>
>
>> It's even worse than that: we also index into the ivy cache in Eclipse
>> .classpath files and in some tests, for example
>> org.eclipse.virgo.web.test.SpringWebFlowWarTests in Virgo web.
>>
>
>
> <EclipseClasspath.jad><ATT00001..txt>