SORU
30 Kasım 2009, PAZARTESİ


Karınca ile paket jar oluşturma

Karınca bazı Java projeleri oluşturmak için kullanıyorum.
Bazı dış bağımlılıkları içeren lib/ bir dizin JAR dosyaları şeklinde var.

Sırasında inşa, oluşturmak bir paket kavanoz, içeren projenin kodu, yanında bağımlılıklar, ekleyerek için paket jar dosyası zipfileset Her kavanoz içinde lib/ dizin.

Sorun, her zaman eklerim bir kavanoz veya adlarını değiştirin, ihtiyacım var hatırlamak güncelleme build.xml dosyası olarak bulamadım bir ekleme o zipfilesets otomatik bir şekilde yer alacak tüm kavanoz belirli bir desen (örneğin lib/*.jar).

Bunu yapmanın daha iyi bir yolu var mı?

Bunun için kendi Karınca benim görevim yazmak, yoksa Harika karınca bunu yapmak için API programlı olarak kullanarak düşündüm, ama bu "" karınca. vanilya kullanarak yapmanın bir yolu varsa merak ettim

Teşekkürler!

CEVAP
30 Kasım 2009, PAZARTESİ


Hedefim, böyle bir şey var:

<jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
    <zipgroupfileset dir="dist" includes="*.jar"/>
    <zipgroupfileset dir="dist/lib" includes="*.jar" excludes=""/>

    <manifest>
        <attribute name="Main-Class" value="${main.class}"/>
        <attribute name="Class-Path" value="${mf.classpath}"/>
    </manifest>
</jar>

Ve burada benim sınıf nasıl inşa edilir:

<path id="build.classpath">
	<fileset dir="${basedir}/">
		<include name="${lib.dir}/*.jar"/>
	</fileset>
</path>

<pathconvert property="mf.classpath" pathsep=" ">
	<path refid="build.classpath"/>
	<mapper>
		<chainedmapper>
			<flattenmapper/>
			<globmapper from="*.jar" to="lib/*.jar"/>
		</chainedmapper>
	</mapper>
</pathconvert>

mf.sınıf paket hedef yukarıda yayınlanan kullanılır. Bu kısmı başka bir yerden kopyaladım, o kadar samimi değilim.

Hızlı düzenleme. Javac bu kavanozlar çok bilmesine gerek yok.

<path id="jars">
    <fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>

<target name="compile">
	<mkdir dir="${build.dir}"/>
	<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="jars" debug="on"/>
</target>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • New Scientist

    New Scientis

    27 Kasım 2006