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
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>
Program aracılığıyla KnitR ile R in fi...
Neden bir zaman Dilimi içinde Button v...
Android Studio Yeniden Paket...
Sen Emacs için Paket Yöneticisinden ne...
Otomatik NuGet oluşturma inşa sürecini...