Search code examples
javaanteclipse-rcpeclipse-pde

Ant: resolve wildcards for java arg


I'm currently working on a pde build for a rcp application. During the build I want to execute a .jar which requires the path to all plugins I use in my rcp application. The Problem is the plugins all have a version at the end of their name. e.g.: com.ibm.icu_52.1.1.v201501240615.jar

The .jar does not support wildcards in the argument so I tried using filelist and pathconvert:

<filelist id="plugins.jars"
    dir="${eclipse.pdebuild.home}.."
    files="com.ibm.icu*.jar,org.eclipse.equinox.simpleconfigurator*.jar"
/>

<pathconvert pathsep=";" property="plugins" refid="plugins.jars"/>

<java jar="Programm.jar"
        fork="true"
        failonerror="true">

        <arg value="${plugins}" />
</java>

The problem with that is that the * won't get resolved.

[java] Info: Setting additionally referenced classes (C:\Program Files (x86)\eclipse_rcp\plugins\com.ibm.icu*.jar;C:\Program Files (x86)\eclipse_rcp\plugins\org.eclipse.equinox.simpleconfigurator*.jar).
[java] Error : Classpath file C:\Program Files (x86)\eclipse_rcp\plugins\com.ibm.icu*.jar does not exist

Does anyone have an idee how I could solve this problem?

Any help is appreciated!

Best regards, Andi


Solution

  • Use fileset instead :

    <fileset dir="${eclipse.pdebuild.home}" id="plugins.jars"
      includes="com.ibm.icu*.jar,org.eclipse.equinox.simpleconfigurator*.jar/>
    
    <!-- simple echo -->
    <echo>${toString:plugins.jars}</echo>
    
    <pathconvert pathsep=";" property="plugins" refid="plugins.jars"/>
    

    Use ',' or blank as separator for includes.