Java kütüphanesi için bir Ant derleme dosyam var. Bu şuna benzer:Ant'in dosya kümesi komutunun hedef dizinini nasıl değiştiririm?
<project ... ><target ... >
<jar destfile="C:\path\to\export.jar">
<manifest> ... </manifest>
<fileset dir="C:\path\to\bin" />
<fileset dir="C:\path\to\src" />
<fileset dir="C:\path\to\doc" />
<zipfileset src="C:\path\to\included\library.jar" />
</jar>
</target></project>
Tek sorun benim javadoc çıkan kavanoz dosyasının kök dizinine doğrudan ihraç ediliyor olmasıdır. Temel olarak, <jar>
komutunun içinde kullanılabilecek <copydir>
komutunun bazı eşdeğerlerini istiyorum.
export.jar
META-INF
Manifest.MF
com
example
whatever
Blah.class
Blah.java
org
external
somelibrary
Magic.class // contents of the included library jar file
doc
// javadoc files here
akım yapıdır:
Benim istenen yapı budur
export.jar
META-INF
Manifest.MF
com
example
whatever
Blah.class
Blah.java
// some javadoc files here
org
external
somelibrary
Magic.class // contents of the included library jar file
// more javadoc files here
Benim şu anki "çözüm" kavanoz kez, o zaman, dokümantasyon
<fileset>
komutu ihmal etmektir
dışa aktarıldı, Windows Gezgini'ne gidin ve sağa tıklayın → 7-Zip → Open Archive; Daha sonra doc
dizini oraya bırakabilirim. Bununla birlikte, bu tamamen tamamen otomatik bir yapı sistemi olarak Ant'in amacını tamamen bozar.
Önemli ise, bu dosya aslında Eclipse tarafından Runnable JAR dışa aktarıcıyla üretildi. Bununla birlikte, açıkçası kaynak dosyaları eklemek için onu değiştirmem gerekiyor, çünkü bir kütüphane ve aslında çalıştırılabilir bir kavanoz değil. Eclipse'in gerekli kütüphanelerde paketlenmesini sağlamak için onu runable bir kavanoz olarak ihraç ettim; görünüşte yapı yolunda kütüphaneler standart Dosya → İhracat → JAR dosyası yoluyla ihracat için kullanılamaz.
. Ancak, 'doc' klasörüm bir dosya değil, bir zip dosyası değildir. Eclipse'e göre, 'fileset 'komutunda' prefix' özniteliği yoktur. – wchargin
'zipfileset' iki şekilde kullanılabilir. Bir zip dosyası içinde bir dosya grubu olarak. Bir dosya kümesine bir zipte (ya da bir kavanozda) dahil olmak üzere biri bu aynıdır. Sonuncusu kullanım durumunuz içindir. Cevabımda işaret ettiğim dokümanın ilk satırlarını okuyun. –
Teşekkürler! Eğer bir sakıncası yoksa cevabınızı bir kod örneği içerecek şekilde düzenleyeceğim. – wchargin