yılında zipfileset tabloların listesini yeniden kullanma Ben benzer hedefleri olan bazı şişman birlikte çalıştırılabilir kavanoz koymak bir build.xml var:ANT
kodu Eclipse (İhracat çalıştırılabilir Kavanoz) tarafından ve minör ile oluşturulmuştur<target name="create_myapp_jar">
<jar destfile="./production/myapp.jar" filesetmanifest="mergewithoutmain">
<manifest>
<attribute name="Main-Class" value="com.something.entrypoints.MyApp"/>
<attribute name="Class-Path" value="."/>
</manifest>
<fileset dir="./classes"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-cli-1.2.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-codec-1.10-sources.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-codec-1.10.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-io-2.4.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-lang-2.6.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-pool2-2.2.jar"/>
lots and lots of more JARs here....
</target>
benim tarafımdan değişir.
İçerdiği Kavanozların listesi aslında oldukça uzun. Bu yağ kavanozlarından birkaçını yapıyorum ve her hedef için <zipfileset>
ifadelerini listelemekten nasıl kaçınabileceğimi merak ediyordum?
Bunları nasıl bir araya getirebilirim ve sonra her bir yağ-kavanoz oluşturma hedefinden onlara nasıl başvurabilirim? Hepsi benim build.xml 'in yüzlerce ve yüzlerce satıra yayılmasına izin vermemek. Ayrıca, her bir hedefe yeni bir JAR eklemenin acısı bir yerde bir tanıma sahip olsaydı giderdi. Daha sonra yeniden kullanmak üzere Jar fileset kaydetmek gerekirse
<target name="create_myapp_jar">
<jar destfile="./production/myapp.jar" filesetmanifest="mergewithoutmain">
<manifest>
<attribute name="Main-Class" value="com.something.entrypoints.MyApp"/>
<attribute name="Class-Path" value="."/>
</manifest>
<fileset dir="./classes"/>
<zipgroupfileset dir="lib/" includes="*.jar" excludes="META-INF/*.SF" />
</jar>
</target>
, yapabileceğiniz:
Bu çok güzel çalıştı ve makrolar için de bir şeyim var ... her iki cevabı da "Doğru" olarak işaretleyemem. Hangisinin en iyisi olduğunu düşünmek. –