2010-03-26 14 views
43

Sto esaminando la documentazione fornita con Apache Ant versione 1.8.0 e non riesco a trovare dove classpath, path e pathelement sono documentati. Ho trovato una pagina che descrive il percorso come strutture ma non elenca gli attributi validi o gli elementi nidificati per questi. Un'altra cosa che non riesco a trovare nella documentazione è una descrizione delle relazioni tra filelist, set di file, patternset e percorso e come convertirli avanti e indietro. Ad esempio, ci deve essere un modo più semplice per compilare solo le classi in un pacchetto rimuovendo tutte le dipendenze delle classi sulle classi di pacchetto e la documentazione di aggiornamento.Dove sono classpath, path e pathelement documentati in Ant versione 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> 

Avviso c'è un certo numero di conversioni tra set di file, percorsi e elenco separato da virgole solo per ottenere il 'tipo' corretto richiesto per i diversi compiti formica. C'è un modo per semplificare questo mentre si elaborano ancora i file più pochi in una struttura di directory complessa?

+4

Vorrei poter votare fino questo di più. Le pagine man di 'formiche 'sono assolutamente schifose. Sono senza valore. – jww

risposta

11

Questo è il più vicino che è riuscito a trovare nella documentazione su classpath.

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

+6

Sì, l'ho trovato ma non entra nei dettagli. Nello specifico, non dice quali attributi o elementi nidificati sono validi. –

+2

L'ANT doco si concentra sui compiti. Le altre parti imparate per osmosi :-) Ad esempio i riferimenti mi hanno messo molto tempo a capire (http://ant.apache.org/manual/using.html#references) –

+0

Quindi questa è una risposta piuttosto inutile . Nulla, ma il collegamento alla documentazione che in realtà non ha una soluzione in esso non contribuisce molto. – Fulluphigh

0

Path:

Questo oggetto rappresenta un percorso come utilizzato dalla variabile CLASSPATH o ambiente PATH. Un percorso potrebbe anche essere descritto come una raccolta di risorse di file system univoche.

e PathElement:

classe Helper, tiene i nidificati <pathelement> valori.

sono definiti direttamente in JavaDoc.

ClassPath è un'implementazione di AbstractClasspathResource:

rappresentazione una risorsa di tutto ciò a cui si accede tramite un programma di caricamento classe Java. Vengono forniti i metodi principali per impostare/risolvere il classpath.

che è una sottoclasse diretta di Resource:

descrive una risorsa "file-like" (File, ZipEntry, etc.). Questa classe è pensata per essere utilizzata dalle classi che hanno bisogno di registrare informazioni su percorso e data/ora su un file, una zip o qualche risorsa simile (URL, archivio in un repository di controllo versione, ...).

Ant Class Diagram

FileSet è definito come:

un set di file è un gruppo di file. Questi file possono essere trovati in un albero di directory che inizia in una directory di base e sono abbinati a modelli presi da un numero di PatternSet e Selettori.

selettori è definito come:

selettori sono un meccanismo in cui i file che compongono un <fileset> possono essere selezionati in base a criteri diversi dal nome di file come previsto dalle <include> e <exclude> tag.

PatternSet è definito come:

pattern possono essere raggruppati per insiemi e successivamente essere identificati dai loro attributo id. Sono definiti tramite un elemento patternset, che può apparire nidificato in un FileSet o un'attività basata su directory che costituisce un FileSet implicito. Inoltre, i set di modelli possono essere definiti come elementi standalone allo stesso livello del target, cioè come figli di progetto e come target di riferimento.

FileList è definito come:

filelists sono chiamati in modo esplicito elenchi di file. Mentre i FileSet agiscono come filtri, restituendo solo quei file che esistono nel file system e corrispondono ai pattern specificati, le FileList sono utili per specificare i file che possono o non possono esistere. Più file vengono specificati come un elenco di file, relativo alla directory specificata, senza supporto per l'espansione di caratteri jolly (i nomi di file con caratteri jolly saranno inclusi nell'elenco invariato). Gli elenchi di file possono essere visualizzati all'interno di attività che supportano questa funzione o come tipi autonomi.

Ant Resource Collections

In Schematron, si potrebbe convalidare questo dalle seguenti:

<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>   

Riferimenti