2010-03-26 16 views
43

Przeglądam dokumentację dostarczaną z programem Apache Ant w wersji 1.8.0 i nie mogę znaleźć informacji o ścieżce klas, ścieżce i patelni. Znalazłem stronę opisującą struktury podobne do ścieżki, ale nie zawiera ona prawidłowych atrybutów ani elementów zagnieżdżonych dla tych struktur. Inną rzeczą, której nie mogę znaleźć w dokumentacji, jest opis relacji między filelistą, zestawem plików, zestawem wzorców i ścieżką oraz sposobem ich konwertowania w tę iz powrotem. Na przykład musi istnieć łatwiejszy sposób kompilowania tylko tych klas w jednym pakiecie podczas usuwania wszystkich zależności klas z klas pakietów i aktualizacji dokumentacji.Gdzie ścieżka klasowa i ścieżka są udokumentowane w wersji Ant 1.8.0?

<!-- Get list of files in which we're interested. --> 
<fileset id = "java.source.set" 
    dir  = "${src}"> 
    <include name = "**/Package/*.java" /> 
</fileset> 

<!-- Get a COMMA separated list of classes to compile. --> 
<pathconvert property = "java.source.list" 
    refid    = "java.source.set" 
    pathsep   = ","> 
    <globmapper from = "${src}/*[email protected]{src.extent}" 
     to   = "*.class" /> 
</pathconvert> 

<!-- Remove ALL dependencies on package classes. --> 
<depend srcdir = "${src}" 
    destdir = "${build}" 
    includes = "${java.source.list}" 
    closure = "yes" /> 

<!-- Get a list of up to date classes. --> 
<fileset id = "class.uptodate.set" 
    dir  = "${build}"> 
    <include name = "**/*.class" /> 
</fileset> 

<!-- Get list of source files for up to date classes. --> 
<pathconvert property = "java.uptodate.list" 
    refid    = "class.uptodate.set" 
    pathsep   = ","> 
    <globmapper from="${build}/*.class" to="*.java" /> 
</pathconvert> 

<!-- Compile only those classes in package that are not up to date. --> 
<javac srcdir = "${src}" 
    destdir  = "${build}" 
    classpathref = "compile.classpath" 
    includes  = "${java.source.list}" 
    excludes  = "${java.uptodate.list}"/> 

<!-- Get list of directories of class files for package. --: 
<pathconvert property = "class.dir.list" 
    refid    = "java.source.set" 
    pathsep   = ","> 
    <globmapper from = "${src}/*.java" 
     to   = "${build}*" /> 
</pathconvert> 

<!-- Convert directory list to path. --> 
<path id = "class.dirs.path"> 
    <dirset dir = "${build}" 
     includes = "class.dir.list" /> 
</path> 

<!-- Update package documentation. --> 
<jdepend outputfile = "${docs}/jdepend-report.txt"> 
    <classpath refid = "compile.classpath" /> 
    <classpath location = "${build}" /> 
    <classespath> 
    <path refid = "class.dirs.path" /> 
    </classespath> 
    <exclude name = "java.*" /> 
    <exclude name = "javax.*" /> 
</jdepend> 

Wskazówka istnieje liczba konwersji między zestawy plików, ścieżek i oddzielone przecinkami listę tak aby uzyskać właściwą „typ” wymaganych dla poszczególnych zadań Ant. Czy istnieje sposób, aby to uprościć, jednocześnie przetwarzając najmniej plików w złożonej strukturze katalogów?

+4

Chciałabym się głosować to więcej. Strony man dla 'mrówki 'absolutnie ssać. Są bezwartościowe. – jww

Odpowiedz

11

To jest najbliższy dokument, który można znaleźć na ścieżce klas.

http://ant.apache.org/manual/using.html#path

+6

Tak, znalazłem to, ale to nie wchodzi w szczegóły. W szczególności nie określa, które atrybuty lub elementy zagnieżdżone są poprawne. –

+2

Dokument ANT doco koncentruje się na zadaniach. Inne części, których uczysz się przez osmozę :-) Na przykład odniesienia zajęło mi dużo czasu, aby dowiedzieć się (http://ant.apache.org/manual/using.html#references) –

+0

Więc jest to dość nieprzydatna odpowiedź . Nic, oprócz łączenia się z dokumentacją, która w rzeczywistości nie ma w sobie rozwiązania, nie ma większego znaczenia. – Fulluphigh

0

Path:

Cel ten oznacza drogę wykorzystywanego przez zmienną CLASSPATH lub PATH. Ścieżkę można również opisać jako zbiór unikatowych zasobów systemu plików.

i PathElement:

klasa Pomocnik, posiada zagnieżdżone <pathelement> wartości.

są zdefiniowane bezpośrednio w JavaDoc.

ClassPath jest implementacją AbstractClasspathResource:

Resource reprezentacja niczego, co można uzyskać dostęp za pośrednictwem classloader Java. Podano podstawowe metody ustawiania/rozwiązywania ścieżki klas.

który jest bezpośrednią podklasą Resource:

opisuje "plikopodobny" zasobu (pliku, ZipEntry, itd.). Ta klasa ma być używana przez klasy, które muszą rejestrować informacje o ścieżce i dacie/godzinie dotyczące pliku, wpisu zip lub jakiegoś podobnego zasobu (URL, archiwum w repozytorium kontroli wersji, ...).

Ant Class Diagram

fileset jest zdefiniowany jako:

fileset to grupa plików. Pliki te można znaleźć w drzewie katalogów rozpoczynającym się w katalogu podstawowym i są one dopasowane wzorami zaczerpniętymi z wielu zestawów wzorców i selektorów.

Selektory jest zdefiniowany jako:

Selektory to mechanizm, dzięki któremu można wybrać pliki, które tworzą <fileset> na podstawie kryteriów innych niż nazwy pliku jako dostarczone przez <include> i <exclude> tagów.

PatternSet jest zdefiniowany jako:

wzory mogą być podzielone na zestawy i później odwołuje Ich cechą id. Są definiowane przez element zestawu wzorców, który może być zagnieżdżony w pliku FileSet lub w zadaniu katalogowym, które stanowi niejawny plik FileSet. Ponadto zestawy wzorców można zdefiniować jako samodzielny element na tym samym poziomie, co element docelowy - tj. Jako elementy potomne projektu, a także jako elementy potomne obiektu docelowego.

FileList jest zdefiniowany jako:

FileLists są wyraźnie nazwane listy plików. Podczas gdy FileSets działają jak filtry, zwracają tylko te pliki, które istnieją w systemie plików i pasują do określonych wzorców, FileLists są przydatne do określania plików, które mogą istnieć lub nie. Wiele plików jest określanych jako lista plików, w stosunku do podanego katalogu, bez obsługi rozszerzenia symboli wieloznacznych (nazwy plików z symbolami wieloznacznymi zostaną umieszczone na liście niezmienione). Listy plików mogą pojawiać się w zadaniach obsługujących tę funkcję lub jako typy autonomiczne.

Ant Resource Collections

W Schematron, można zweryfikować to brzmienie:

<sch:pattern> 

     <sch:title>Check allowed elements</sch:title> 

     <sch:rule context="target/*[name() = ancestor::*/taskdef/@name]"> 

       <sch:assert test="true()"> 

       The target element may contain user-defined tasks. 

      </sch:assert> 

     </sch:rule> 

</sch:pattern>   

Odniesienia