logo separator

[mkgmap-dev] [PATCH] Use Apache Ivy to fetch dependencies, put them in dist

From Richard Hansen rhansen at bbn.com on Tue Jan 31 05:46:54 GMT 2012

On 2012-01-30 19:13, Steve Ratcliffe wrote:
> There are a few more jars needed to set up a development environment
> so that everything can be compiled. I added the following dependancies
> to my working copy:
> For the mkgmap ant task:
> 	<dependency org="org.apache.ant" name="ant" rev="1.8.2" conf="compile->compile(*)"/>
> Development only (internationalisation):
> 	<dependency org="com.ibm.icu" name="icu4j" rev="4.8" conf="compile->compile(*)"/>

These two are for the files in extra, correct?

I don't see an ant target for the extras, only an entry in mkgmap.iml.
Do you want to add a special ant target for these?  Or simply always
include them in the main build?

> There is the optional DEM reader which needs the java JAI libraries. I
> had trouble finding a good repository for this. The best I found is:
> 	<dependency org="javax.media.jai" name="com.springsource.javax.media.jai.codec" rev="1.1.3" conf="*->compile" />
>    with the repository definition:
> 	<url name="com.springsource.repository.bundles.external">
> 		<ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
> 		<artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
> 	</url>

That seems like a perfectly fine repository to add to the ivyconfig.xml.

> I think we should have three configurations, default/master for the normal
> build, "optional" for things that are not part of the main
> distribution but which people might like to use (including anything
> where we cannot distribute the jars, which may be the case with JAI -
> need more investigation) and "dev" to cover macker, icu4j etc.
> The idea being that resolving dev would bring in everything needed to
> get going.

I think it's better to think of it from a target-centric perspective.
In other words, a jar should only be downloaded if it is needed to
successfully complete the target.  For example, macker is only needed if
you run 'ant macker', so there's no reason to download it otherwise.

If there are multiple flavors of the standard build (e.g., full vs lite,
with vs without DEM support), then things get slightly tricky.  We could
either have multiple targets (one per flavor), or we could have a single
target that is controlled by a user-settable property.  I'm not sure
which approach is better.

> I'd also like to remove the build-support directory, and just move the
> scripts to the top level and combine them into one or even add them to
> the build.xml. The ivy jar file can go under lib/build or something.

I agree; I'll make a patch.

>> Also, would you like me to work on modifying splitter's build system to
>> match?
> Yes that would be great.

OK, I'll work on it over the weekend.


More information about the mkgmap-dev mailing list