I do it with Jython as following, but, depending on what you actually
need to do, it can be done easier by filtering all values via LinkedHashSet:
<scriptdef name="setpath" language="jython">
<attribute name="name" />
<attribute name="path" />
<![CDATA[# setpath
import os
import java
name=str(attributes.get("name"))
path=attributes.get("path")
pathList=[]
pathSet={}
for elem0 in path.split(';'):
for elem in elem0.split(java.io.File.pathSeparator):
canon_elem=java.io.File(elem).canonicalPath
if not pathSet.has_key(canon_elem):
pathSet[canon_elem]=None
pathList.append(java.io.File(elem).absolutePath)
path=os.pathsep.join(pathList)
project.setProperty(name, path)]]>
</scriptdef>
timt asml wrote:
> Hi,
>
> We've recently moved part of our build environment from traditional
> unix make to
> ant, and we're encountering some problems (ant 1.6.2, by the way)
>
> - We have an hierachical archive organization, in which individual
> programmers only work on
> single components of the product. Typically, a single component is
> a single jar.
>
> - Each developer works in a partial cpy of a so-called gate archive.
> This gate-archive contains
> the jar's for all components in the archive.
>
> We now build a class path using the following snippet:
> <available file="${jlib.ws}" type="dir" property="jlib.ws.available"/>
> <available file="${jlib.gate}" type="dir" property="jlib.gate.available"/>
>
> <path id="cmgr.classpath">
> <fileset dir="${jlib.ws}">
> <include name="*.jar"/>
> </fileset>
> <fileset dir="${basedir}">
> <include name="${jlib.gate}/*.jar" if="jlib.gate.available"/>
> </fileset>
> </path>
>
> Clearly, this leads to some duplication: the gate archive also
> contains the component jar, and we're
> somewhat worried about picking up the wrong version of the jar file.
>
> How do I exclude a file which is already in the path from being
> added to the path ?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
--
------------------------------------------------------------------------
/ Alexey N. Solofnenko
MDL Information Systems, Inc.
work: 510-357-2222x1726
home: http://trelony.cjb.net/
/
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org
|