ant scientific चींटी में फ्लैटेनमैपर परिणाम को कैसे पकड़ सकता है?




ants facts (2)

कृपया, मेरी चींटी फ़ाइल से कुछ लक्ष्य नीचे देखें:

<fileset id="test-dep-jars" dir="o:/java">
    <include name="junit-4.10.jar"/>
    <include name="easymock-3.1\easymock-3.1.jar"/>
    <include name="easymockclassextension-3.1\easymockclassextension-3.1.jar"/>
</fileset>

<target name="copy-test-deps">
    <mkdir dir="${deploy.dir}"/>
    <copy todir="${deploy.dir}">
        <fileset refid="test-dep-jars"/>
        <flattenmapper/>
    </copy>
</target>

<target name="jar" depends="copy-test-deps">
    <jar destfile="${deploy.dir}/test-${ant.project.name}.jar" basedir="${test.classes.dir}" 
         includes="**/*.class" filesetmanifest="skip">
        <manifest>
            <attribute name="Class-Path"
                       value="${ant.project.name}.jar junit-4.10.jar easymock-3.1.jar easymockclassextension-3.1.jar"/>
        </manifest>
    </jar>
</target>

मेरी समस्या यह है कि मुझे परीक्षण निर्भरता जार दो बार बता देना होगा - एक बार टेस्ट-डेप-जर्स फाइलसेट को परिभाषित करते समय और दूसरी बार उत्पादित जार की कक्षा-पथ मेनिफेस्ट विशेषता निर्दिष्ट करते समय

अगर मैं केवल फ्लैटनमैपर परिणाम पर कब्जा कर सकता हूं, तो मैं इसे कक्षा-पथ में उपयोग करने में सक्षम होगा जैसा कि है।

मैं flattenmapper परिणाम पर कैसे पकड़ सकता है?

धन्यवाद।

https://code.i-harness.com


मैं इसके बजाय manifestclasspath कार्य का उपयोग करने की सिफारिश करेगा:

<manifestclasspath property="jar.classpath" jarfile="${jar.file}">
    <classpath>
        <fileset dir="${deploy.dir}" includes="*.jar"/>
    </classpath>
</manifestclasspath>

<jar destfile="${jar.file}" basedir="${classes.dir}">
    <manifest>
        <attribute name="Main-Class" value="${jar.main.class}" />
        <attribute name="Class-Path" value="${jar.classpath}" />
    </manifest>
</jar>

यह सही क्लासपाथ प्रॉपर्टी परिभाषा उत्पन्न करेगा और यहां तक ​​कि सापेक्ष पथ के साथ काम करता है (उदाहरण के लिए यदि आप उप-डायरेक्टरी में निर्भर जार डालते हैं)।


यदि आप फ़्लैटनमैपर का उपयोग करना चाहते हैं तो आप निम्न का उपयोग कर सकते हैं ...

<pathconvert property="mf.classpath" pathsep=" ">
    <path refid="build.class.path" />
    <flattenmapper />
</pathconvert>

<manifest>
            <attribute name="Class-Path"
                       value="${ant.project.name}.jar ${mf.classpath}"/>
        </manifest>