1. Présentation
Ant est un outil qui connecte la compilation de logiciels, les tests, le déploiement et d'autres étapes à automatiser, principalement pour le développement de logiciels dans l'environnement Java. Dans le développement réel de logiciels, il existe de nombreux endroits pour utiliser ANT.
Environnement de développement:
Copier le code du code comme suit:
Système: Windows
JDK: 1.6+
Ide: éclipse
Ant: 1.9.1
Deuxièmement, les avantages
Ant est un sous-projet dans le répertoire Jakarta de la Fondation du logiciel Apache.
1. Cross -Plateform: Ant est écrit en langage java pur, il a donc une bonne plate-forme croisée.
2. Fonctionnement simple: Ant est composé d'une tâche construite et d'une tâche facultative. Ant nécessite un fichier XML (Fichiers de construction). Ant peut exécuter diverses tâches en appelant l'arborescence cible. Chaque tâche implémente des objets d'interface spécifiques.
3. Maintenance simple, bonne lisibilité et simplement intégrée: parce que les fichiers construits Ant, les fichiers de format XML sont faciles à maintenir et à écrire, et la structure est très claire. ANT peut s'intégrer dans l'environnement de développement. Parce que les caractéristiques de la plate-forme croisée d'Ant et de fonctionnement simples, il est facile à intégrer dans certains environnements de développement.
Troisièmement, l'installation et la configuration
1. Téléchargez Ant, http://mirror.esocc.com/apache/ant/binaries/apache-nt -nt-9.1-bin.zip
2. Décompressez le package de compression ZIP et placez le package compressé que vous souhaitez placer le répertoire que vous souhaitez placer. Je le place ici en d: /apache-at-1.9.1, la structure du répertoire est la suivante:
Bin est un programme de fourmi exécutant l'entrée.
Tels que: exécutez ant.bat dans CMD pour exécuter le programme.
Tous les modèles de sortie XSL sont stockés dans le répertoire ETC, créant une sortie XML à exportation améliorée de diverses tâches, afin que vos fichiers de construction se débarrassent des avertissements obsolètes
Ce qui est stocké dans le répertoire Lib est le package JAR sur lequel le programme ANT doit dépendre
Le répertoire manuel est le document d'aide du programme ANT
3. Dans mon ordinateur> Cliquez avec le bouton droit sur les propriétés> Configuration du système avancé-> Configurer la fourmi dans les variables d'environnement
Nouvelle variable système ant_home = d: /apache-at-1.9.1
De cette façon, la variable d'environnement est configurée, mais la prémisse dont vous avez besoin pour configurer la variable d'environnement de JDK. Si vous ne configurez pas la variable d'environnement de JDK, veuillez d'abord configurer la variable JDK. La méthode de configuration de l'environnement JDK est la suivante:
(1) Installez JDK sur son répertoire par défaut: C: / Program Files / Java / JDK1.5.0_05 (Aucun JDK ne va au téléchargement officiel)
C: / des fichiers de programme / java / jdk1.5.0
Rôle: Dites au système JVM où est JVM
(2) Cliquez à droite mon ordinateur, sélectionnez des attributs, des variables environnementales avancées
(3) nouvellement construit dans la barre de variable système, une nouvelle boîte de dialogue de variable système apparaît, et Java_Home est rempli dans le nom de variable, valeur de la variable: C: / Program Files / Java / JDK1.5.0_05
(4) Après la confirmation, créez une nouvelle variable d'environnement ClassPath dans la ou les variables système (s) colonnes.
(5) Après confirmation, recherchez et sélectionnez l'option avec la variable en tant que chemin dans la (s) colonne de variable système.
% Java_home% / bac
S'il n'est pas trouvé des variables de chemin, créez-en un nouveau vous-même!
Si vous ne souhaitez pas s'exécuter vers le répertoire où la classe est située à chaque fois que vous exécutez, puis exécutez la commande java, vous pouvez mettre tous les fichiers de classe sous l'organisation Unified Directory, puis ajouter ce répertoire à ClassPath.
Le code de test est le suivant:
Copier le code du code comme suit:
Test de classe publique {
Public static void main (String [] args) {{{
System.out.println ("Hello World!");
}
}
Une fois que l'éditeur du bloc-notes a été modifié en tant que fichier test.java (le nom du fichier et le même nom), ouvrez la fenêtre de ligne de commande,
CD au répertoire où se trouve le fichier:
Copier le code du code comme suit:
javac test.java // compiler les commandes
Test Java // Exécuter le programme
Si la sortie est: Bonjour World! OK, configuré, sinon, vérifiez-le à nouveau.
Quatrièmement, test ANT
Entrez la fourmi dans la fenêtre DOS exécutant CMD, comme indiqué sur la figure:
Si cela apparaît, félicitations pour votre installation! Sinon, il échouera et vérifiera les étapes précédentes. La commande ci-dessus exécutera le programme ANT et Ant effectue la tâche dans la build.xml par défaut.
Si l'installation échoue, voyez s'il y a des situations:
1. Aucune configuration Java_Home ou Erreur de configuration, et Java_Home / Bin / Java.exe existe
2. Aucune configuration Ant_hoem ou erreur de configuration, et ant_home / bin / ant.bat existe
3. Vérifiez les variables de chemin de vos variables d'environnement, il y a du bois et de la configuration ...;% ang_home% / bac;
% Path% = ... peut-être des entrées ...;% ant_home% / bac; ... peut-être-autre ...
5. Le fonctionnement de la fourmi
Lorsque Ant exécute la commande, il y aura parfois des bibliothèques de bocaux de parc. Ces bibliothèques existeront dans chaque projet de fourmis, donc pour le moment, nous pouvons mettre ce package JAR dans le répertoire Ant_Home / Lib en tant que bibliothèque mondiale.
Si vous ne souhaitez pas «polluer» le programme ANT d'origine, vous pouvez mettre un package JAR dans le répertoire des utilisateurs Windows actuel. Sans le répertoire ci-dessus, il peut être établi manuellement.
Si vous voulez simplement ajouter temporairement Lib et que vous ne souhaitez pas ajouter Lib à l'ingénierie Ant actuelle. Vous pouvez spécifier le paramètre LIB dépendant lors de l'exécution du programme ANT.
Dans le même temps, vous pouvez également ajouter votre projet à JAR dans le répertoire de ClassPath du projet de construction actuel.
6. Commande Ant
La description de l'élément grammatical est la suivante:
-Aide
Affichez les informations d'aide de la commande Ant et de ses options
-Projecthelp
L'affichage contient le document d'aide écrit par tous les utilisateurs dans le fichier constructif. C'est-à-dire le texte de l'attribut description dans chaque <itable> et tout texte inclus dans l'élément <escription>. La cible de l'attribut description est la cible principale (cible principale), et la cible sans cet attribut est répertoriée comme sous-cible.
-Version
Il est nécessaire d'afficher les informations de sa version, puis de quitter.
-calme
L'inhibition n'est pas la plupart des nouvelles générées par la tâche d'écho dans le fichier de construction.
-verbeux
Affichez les messages détaillés de chaque opération pendant le processus de construction. Cette option ne peut être sélectionnée qu'avec l'option -debug.
-Déboguer
Afficher la fourmi et les développeurs de tâches ont déjà marqué des messages pour déboguer les messages. Cette option ne peut en choisir une avec -verbose.
-émacs
Formatez les messages de journal afin qu'ils puissent facilement être analysés par ShellMode d'Emacs;
-Logfile de fichier
Réinitialisez la sortie du journal dans le fichier spécifié.
-Logger className
Spécifiez une classe pour traiter le journal de la fourmi. La classe spécifiée doit implémenter l'interface org.apache.tools.ant.ant.buildLogger.
-Listener className
Pour déclarer une classe de surveillance et l'augmenter dans sa liste d'auditeurs. Cette option est très utile lorsque ANT et IDE ou d'autres programmes Java sont intégrés. Vous pouvez lire le chapitre 6 pour comprendre plus d'informations sur le superviseur. La classe d'écoute spécifiée doit être écrite comme le traitement du message de construction qui peut gérer la fourmi.
-Nom de fichier BuildFile
Spécifiez le fichier de construction que vous devez traiter. Le fichier de construction par défaut est build.xml.
-Dproperty = valeur
Définissez une paire de valeurs de nom caractéristique sur la ligne de commande.
-Find Name
Spécifiez le fichier de construction qui doit être traité. Contrairement aux options de buildfile, si le fichier spécifié n'est pas trouvé dans le répertoire actuel, le -find nécessite de rechercher dans son répertoire parent. Cette recherche continuera d'être effectuée dans son répertoire ancestral jusqu'à la racine du système de fichiers, et si le fichier n'a pas été trouvé, la construction échoue.
-Tuoproxy JDK1.5 ou plus peuvent utiliser les paramètres d'agent
-Nouserlib n'utilise pas le package JAR dans la lib utilisateur lors de l'exécution
-Ne conception de la conception principale Priorité du thread principal
-Logfile utilise le journal du journal spécifié
-Noinput ne permet pas d'entrée interactive
-Leke -paining, -K L'exécution ne dépend pas de tous les objectifs
-PropertyFil
Copier le code du code comme suit:
<project default = "all">
<propriété name = "pro_a" value = "une valeur" />
<propriété name = "pro_b" value = "b dalume" />
<path id = "rt.phth">
<PathElement local = "$ {java.home} /jre/lib/rt.jar" />
</ Path>
<cible name = "all">
<javac srcdir = ".">
<classpath rafid = "a.path" />
</javac>
</ Target>
</rand
Avis:
● Tous les fichiers constructifs doivent avoir des éléments <Project> et au moins un élément <Cible>.
● L'attribut par défaut pour l'élément <prophe> ne nécessite pas nécessairement la valeur par défaut.
● Les fichiers de construction ne doivent pas être nommés build.xml. Mais build.xml est le nom de fichier par défaut que les fourmis veulent rechercher.
● Chaque fichier de construction ne peut avoir qu'un seul élément <Prot>.
Entrez le code de copie du répertoire Build.xml actuel dans la fenêtre CMD comme suit:
fourmi
Exécutez Ant dans build.xml dans le répertoire actuel pour effectuer des cibles par défaut.
Copier le code du code comme suit:
Ant -buildfile build -test.xml
Exécutez la fourmi dans le build-test.xml dans le répertoire actuel pour exécuter la cible par défaut.
Copier le code du code comme suit:
Ant -buildfile build -test.xml Clean
Exécutez la fourmi dans le build-test.xml dans le répertoire actuel et exécutez une cible appelée Clean.
Copier le code du code comme suit:
Ant -buildfile build -test.xml -dbuild = build / classes propres
Exécutez la fourmi dans le build-test.xml dans le répertoire actuel, exécutez une cible appelée nettoyage et définissez la valeur de l'attribut de build à la build / classes.
7. Script Ant: utilisez des nœuds, des éléments et des attributs, des instructions de commande
1. Élément de nœud de projet
L'élément de projet est l'élément racine du fichier de composant Ant. Dans chaque élément de projet, plusieurs éléments cibles peuvent être inclus. Affichez les lecteurs suivants les attributs de l'élément de projet.
● Attributs du nom: le nom de spécification de l'élément de projet.
● Attribut par défaut: le nom de l'exécution cible du deuil lorsque le projet est exécuté par défaut.
● Attribut BasedIR: utilisé pour spécifier la position du chemin de base. Lorsque cet attribut n'est pas spécifié, la pièce jointe du fichier de composant Ant est utilisée comme répertoire de référence.
Copier le code du code comme suit:
<?
<project name = "ant-project" default = "print-di" bases = ".">
<cible name = "print-dir">
<echo Message = "Le dia de base est: $ {basaseir}" />
</ Target>
</rand
Il peut être vu à partir de l'exemple ci-dessus que la valeur de la propriété par défaut est imprimée ici, c'est-à-dire que lorsque la commande Ant est en cours d'exécution, si la cible n'est pas indiquée, la cible par défaut (print-dire) sera exécutée. De plus, la valeur de l'attribut basé est ".".
2. Élément de nœud cible
La cible est l'unité d'exécution de base ou la tâche d'Ant, qui peut contenir une ou plusieurs unités / tâches spécifiques. Plusieurs cibles peuvent avoir une dépendance mutuelle. Il a les attributs suivants:
● Nom Attribut: Spécifiez le nom de l'élément cible, qui est unique dans un élément de projet. Nous pouvons spécifier une cible en spécifiant le nom de l'élément cible.
● Dépend de l'attribut: il est utilisé pour décrire la relation de dépendance entre les cibles. Ant exécutera chaque cible en fonction de l'ordre de la cible dans la propriété De dépend, et la cible dépendante sera exécutée en premier.
● Si l'attribut: il est utilisé pour vérifier que l'attribut spécifié existe.
● Sauf l'attribut: la fonction de cet attribut est l'opposé de la fonction de l'attribut if. Il est également utilisé pour vérifier si l'attribut spécifié existe.
● Attribut description: Cet attribut est une brève description et description de la fonction cible.
Exemple:
Copier le code du code comme suit:
<?
<project name = "ant-timeget" default = "print">
<cible name = "version" if = "ant.java.version">
<echo message = "Java Version: $ {ant.java.version}" />
</ Target>
<Target name = "print" Dentend = "version" sauf = "docs">
<escription>
Un exemple dépendant!
</ Description>
<echo Message = "Le dia de base est: $ {basaseir}" />
</ Target>
</rand
D'après les résultats suivants, nous pouvons voir que nous exécutons la cible d'impression. 1.6 ", une fois la version exécutée, puis exécute parce que DOCS n'existe pas, et l'attribut à moins que l'attribut entre la cible lorsqu'il n'y a pas d'existence. est: d: d: / workspace / antexample / build ".
3. Élément de nœud d'attribut de propriété
Les éléments de propriété peuvent être considérés comme une définition des paramètres ou des paramètres. Si vous souhaitez introduire un fichier à l'extérieur, tel que les fichiers build.properties, vous pouvez le citer par le contenu suivant:
<propriété file = "build.properties" /> />
Les éléments de propriété peuvent être utilisés comme valeur d'attribut de la tâche. Dans la tâche, il est réalisé en plaçant des noms d'attribut entre $ {nom d'attribut} et placé en position de la valeur d'attribut de tâche.
Ant fournit des attributs de construction. Dans le même temps, Ant fournit également certains de ses propres attributs construits, comme suit:
Basedir: le chemin absolu de la liste de base de projet;
Ant.File: le chemin absolu de BuildFile.
Ant.Version: Informations sur la version ANT, cet article est 1.8.1;
ant.project.name: le nom du projet spécifié actuel, c'est-à-dire la valeur de propriété du nom du projet mentionné précédemment;
Ant.java.version: la version JDK détectée par Ant, cet article est 1.6.
Par exemple, comme suit:
Copier le code du code comme suit:
<project name = "ant-project" default = "Example">
<propriété name = "name" value = "joJo" />
<propriété name = "age" value = "25" />
<cible name = "Example">
<echo message = "name: $ {name}, Âge: $ {age}" />
</ Target>
</rand
Dans l'exemple ci-dessus, l'utilisateur définit deux attributs nommés nom et âge.
4. Copier la commande
La copie est principalement utilisée pour copier le fichier et le répertoire. Par exemple, comme suit:
● Copiez un seul fichier:
Copier le code du code comme suit:
<copie file = "old.txt" tofile = "new.txt" />
● Copiez le répertoire des fichiers:
Copier le code du code comme suit:
<copier aujourd'hui = "../ dest_dir">
<Fileset dir = "src_dir" />
</popy>
● Copiez le fichier dans un autre répertoire:
Copier le code du code comme suit:
<copie file = "src.txt" todir = "c: / base" />
5. Supprimer la commande
Supprimez le fichier ou le répertoire, comme suit:
● Supprimer un fichier:
Copier le code du code comme suit:
<delete file = "/res/images/cat.jpg" />
● Supprimer un répertoire:
Copier le code du code comme suit:
<supprimer dir = "/ res / image" />
● Supprimer tous les fichiers JAR ou répertoire vide:
Copier le code du code comme suit:
<delete includemptyDirs = "true">
<Fileset dir = "."
</Delete>
6. Commande Mkdir
Créer un répertoire.
Copier le code du code comme suit:
<mkdir dir = "/ home / philander / build / classes" /> />
7. Déplacer la commande
Déplacer les fichiers ou le répertoire, comme suit:
● Déplacez un seul fichier:
Copier le code du code comme suit:
<move file = "source" tofile = "destfile" /> />
● Déplacez un seul fichier vers un autre répertoire:
Copier le code du code comme suit:
<motion file = "source" todir = "motive" /> />
● Déplacez un répertoire vers un autre répertoire:
Copier le code du code comme suit:
<Move Today = "newdir">
<Fileset dir = "olddir" />
</ move>
8. Commande d'écho
Le rôle de cette tâche est de produire des informations en fonction du niveau du journal ou du moniteur. Il comprend quatre attributs: Message, fichier, apense et niveau.
<echo Message = "Ant Message" file = "/logs/ant.log" append = "true">
9. Élément de nœud de balise JAR
Cette balise est utilisée pour générer un fichier JAR, qui est le suivant.
● Destfile indique le nom du fichier JAR.
● Basedir représente le nom de fichier de l'archivé.
● Comprend indique le mode de fichier de non archivage.
● Les échudes représentent le mode de fichier excluant.
● La compression indique si elle est comprimée.
Exemple:
Copier le code du code comme suit:
<jar destfile = "$ {webroot} / $ {ash_jar}" niveau = "9" compression = "true" Encoding = "utf-8" basasedir = "$ {dest}">
<manifeste>
<attribut name = "implémentation-value =" version: 2.2 "/>
</ manifeste>
</jar>
Le mainfest ci-dessus est le contenu du contenu du fichier dans le manifeste.mf dans la viande dans le paquet de pot
La même opération d'emballage est la guerre, TGZ et l'opération de décompression UZIP
Copier le code du code comme suit:
<! - Créer zip->
<zip basseness = "$ {basaseir} / class" zipfile = "temp / output.zip" /> />
<! - Créer tgz->
<gzip src = "classes / ** / *. Classe" zipfile = "output.class.gz" />
<! - Collage zip->
<Unzip src = "output.class.gz" dest = "extractdir" />
<! - Créer un package de guerre->
<war destfile = "$ {webroot} /ash.war"-basaseir = "$ {basaseir} / web" webxml = "$ {basaseir} /web/web.xml" >>
<exclure name = "web-inf / classe / **" />
<exclure name = "web-inf / lib / **" />
<exclure name = "web-inf / work / _jsp / **" />
<lib dir = "$ {lib.dir}" inclut = "** / *. jar, ** / *. So, ** / *. dll">
<exclure name = "$ {webroot} / $ {helloworld_jar}" />
</lib>
<lib file = "$ {webroot} / $ {helloword_jar}" />
<classes dir = "$ {dest}" inclut = "** / *. xml, ** / *. corretites, ** / *. xsd"> </ classses>
</ war>
10. Élément de nœud de balise Javac
L'étiquette est utilisée pour compiler un ou un groupe de fichiers Java, et ses attributs sont les suivants.
● SRCDIR représente le répertoire du programme source.
● Destdir représente le répertoire de sortie du fichier de classe.
● Inclure représente le modèle du fichier compilé.
● exclut représente le modèle des fichiers exclus.
● ClassPath représente le chemin de classe utilisé.
● Le débogage représente les informations de débogage.
● Optimiser indique s'il faut utiliser l'optimisation.
● Verbose représente des informations de sortie détaillées.
● FileOnError a déclaré automatiquement l'arrêt lorsqu'il a rencontré une erreur.
L'exemple de code de code de copie est le suivant:
<javac srcdir = "$ {src}" destdir = "$ {dest}" />
<! - Définissez la mémoire JVM
<javac srcdir = "src" fork = "true" />
<javac srcdir = "src" fork = "true" exécutable = "d: / sdk141 / bin / javac"
MemoryMaxiMumSize = "128m" />
->
11. Élément de nœud de balise Java
Cette étiquette est utilisée pour exécuter le fichier .class qui a été compilé, et ses attributs sont les suivants.
● ClassName représente le nom de l'exécution.
● JAR signifie le nom du fichier JAR contenant cette classe.
● ClassPath a exprimé le chemin de classe utilisé.
● Fork signifie exécuter cette classe dans une nouvelle machine virtuelle.
● FailOnerror a déclaré que s'est arrêté automatiquement lorsqu'une erreur s'est produite.
● La sortie indique le fichier de sortie.
● L'approvisionnement indique l'ajout ou couvrait le fichier par défaut.
L'exemple de code de code de copie est le suivant:
<java classname = "com.hoo.test.helloworm" classpath = "$ {hello_jar}" />
12. Élément de paramètre de données ARG
Le programme appelé ANT peut y transmettre les paramètres de ligne de commande via l'élément <rg>, tels que les tâches applicables, exec et java qui peuvent être acceptées avec des éléments <rg> imbriqués, et peuvent spécifier les paramètres spécifiés pour leurs processus respectifs . Voici tous les attributs de <gg>.
● Les valeurs sont un paramètre de commande. S'il y a un espace dans le paramètre, mais si vous souhaitez l'utiliser comme une seule valeur, utilisez cet attribut.
● Le fichier représente un nom de fichier d'un paramètre. Dans la construction d'un fichier, le nom de ce fichier est relatif au répertoire de travail actuel.
● Ligne indique plusieurs paramètres de l'espace séparés par des espaces.
● Exprimez le chemin, une chaîne en forme de chemin qui est utilisée comme une seule variable de ligne de commande; ou en tant que séparateur, Ant le transformera en un symbole séparatiste d'une plate-forme spécifique.
● Pathref référencé Path (Utilisation du chemin de définition du nœud d'élément de chemin) ID)
● Préfixe Préfixe ● Suffix Suffixe
L'exemple de code de code de copie est le suivant:
<arg value = "-la -a" />
Il s'agit d'une seule variable de ligne contenant de l'espace.
Copier le code du code comme suit:
<arg line = "-la -a" />
Il s'agit de la variable de ligne de commande séparée par deux espaces.
Copier le code du code comme suit:
<arg path = "/ dir; / dir2: / dir3" />
Il s'agit d'une variable de ligne de commande, et sa valeur est / dir; / dir2; / dir3 sur le système DOS; / dir: / dir2: / dir3 sur le système Unix.
13. Type d'Ericonment
Les commandes ou programmes externes appelés le fichier appelé Ant, et l'élément <v> formule les variables d'environnement qui doivent être transmises aux commandes système qui sont exécutées.
● Le fichier représente le nom de fichier de la valeur de valeur ambiante. Le nom de ce fichier est un chemin absolu à convertir.
● Le chemin représente le chemin de la variable d'environnement. Ant le convertira en un accord local.
● La valeur représente une variable directe de la variable d'environnement.
● La clé signifie le nom de la variable environnementale.
Faites attention au chemin ou à la valeur du fichier qui ne peut en prendre qu'un.
14. Liste de collecte de fichiers FileList
FileList est un type de données qui prend en charge les listes de fichiers de dénomination. Voici tous ses attributs.
● DIR est un répertoire pour calculer le nom de fichier absolu.
● Les fichiers sont une liste de fichiers séparés par virgule.
● REFID est une référence à un <FileList> défini à un certain endroit.
Notez que DIR et les fichiers sont nécessaires, sauf si DIR et les fichiers ne sont autorisés à être utilisés que s'ils sont spécifiés dans ce cas).
L'exemple de code de code de copie est le suivant:
<fileList id = "docfiles" dir = "$ {doc.src}" files = "foo.xml, bar.xml" />
Collection de fichiers $ {doc.src} /foo.xml et $ {doc.src} /bar.xml.
<fileList id = "docfiles" dir = "$ {doc.src}" files = "foo.xml bar.xml" />
<FileList refid = "docfiles" />
<fileList id = "docfiles" dir = "$ {doc.src}">
<file name = "foo.xml" />
<file name = "bar.xml" />
</FileList>
15. Type de fichier de fichiers
Le type de données de jeu de fichiers définit un ensemble de fichiers et est généralement exprimé comme l'élément <fichier>. Cependant, de nombreuses tâches de fourmis ont construit un ensemble de fichiers caché, ce qui montre qu'ils prennent en charge tous les attributs de fichiers et les éléments imbriqués. Ce qui suit est une liste des attributs de l'éventail de fichiers.
● DIR représente le répertoire de base de l'ensemble de fichiers.
● Si la valeur des cas des cas est fausse, alors lors du nom de fichier, l'ensemble de fichiers ne se distingue pas du cas et sa valeur par défaut est vraie.
● DefaultExcludes est utilisé pour déterminer s'il faut utiliser le mode d'exclusion par défaut, et la valeur par défaut est vraie.
● exclut une liste de modèles de fichiers qui doit être envoyée avec une séparation de virgules.
● ExcludeFile représente le nom de fichier d'un fichier qui contient un mode d'exclusion par ligne.
● Comprend est séparé par une virgule et la liste des modèles de fichiers qui doit être incluse.
● InclutFile signifie que chaque ligne comprend un nom de fichier contenant un mode.
L'exemple de code de code de copie est le suivant:
<fileset id = "lib.runtime" dir = "$ {lib.path} / runtime">
<include name = "** / *. jar" />
<inclure name = "** / *. SO" />
<include name = "** / *. dll" />
</fichier>
<fileset id = "lib.container" dir = "$ {lib.path} / conteneur">
<include name = "** / *. jar" />
</fichier>
<fileset id = "lib.extras" dir = "$ {lib.path}">
<inclure name = "test / ** / *. jar" />
</fichier>
16. Type de schéma
L'ensemble de fichiers est un paquet de fichiers et les modèles sont emballés dans des modèles.
<MatchSet> prend en charge 4 attributs: inclut, excluant, y compris le file, exclutfile, qui sont les mêmes que les ensembles de fichiers.
PatternSet permet également les éléments imbriqués suivants: inclure, exclure, incluse et exclut lefile.
L'exemple de code de code de copie est le suivant:
<! - Liste noire et blanche->
<MotemSet id = "non.test.sources">
<inclure name = "** / *. Java" />
<! - Le nom de fichier contient l'exclusion de test->
<exclure name = "** / * test *" />
</matmorSet>
<PatternSet id = "Sources">
<inclure name = "std / ** / *. java" />
<! - juger la condition qu'il y a une transpération à introduire->
<inclure name = "Prof / ** / *. Java" if = "Professional" /> />
<exclure name = "** / * test *" />
</matmorSet>
<! - Un ensemble de fichiers->
<PatternSet inclutFile = "Some-File" />
<matalSet>
<inclutfile name = "Some-Free" />
<PatternSet />
<matalSet>
<inclutfile name = "Some-Free" />
<inclutfile name = "$ {Some-meher-file}" if = "Some-Mean-Free" />
<PatternSet />
17. Type de Filter
FilterSet définit un ensemble de filtres qui remplacent le texte du fichier lorsque le fichier se déplace ou copys.
Les principaux attributs sont les suivants:
● Begintoken indique la marque fouillée par le filtre imbriqué, qui est une chaîne qui l'identifie.
● EndToken indique que la marque recherchée par le filtre imbriqué est une chaîne qui identifie sa fin.
● L'ID est le seul logo du filtre.
● REFID est une référence à un filtre quelque part dans le fichier de construction.
L'exemple de code de code de copie est le suivant:
<! - @ Date @ est remplacé par @ date @ à la date actuelle d'aujourd'hui dans le contenu de fichier version.txt dans le fichier cible.
<copie file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<filterset>
<filter token = "date" value = "$ {aujourd'hui}" />
</filterset>
</popy>
<! - Format de variable personnalisé->
<copie file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<! - Commencez à rechercher à partir de la position% dans la version.txt à la fin de la position *, et remplacez la date @ dans le contenu de remplacement à la valeur de la date actuelle d'aujourd'hui->
<filterset begintoken = "%" endtoken = "*">
<filter token = "date" value = "$ {aujourd'hui}" />
</filterset>
</popy>
<! - Utilisez le fichier de définition du filtre externe->
<copie dès aujourd'hui = "$ {dist.dir} / docs">
<Fileset dir = "$ {build.dir} / docs">
<inclure name = "** / *. html">
</fichier>
<filterset begintoken = "%" endtoken = "*">
<! - Les attributs et les valeurs des fichiers sont introduits de l'extérieur, et les attributs et les valeurs de la venue
<filtersFile file = "$ {user.dir} /dist.properties" />
</filterset>
</popy>
<! - Utilisez la méthode de référence, utilisez à plusieurs reprises l'ensemble de filtre->
<filterset id = "myFilterset" begintoken = "%" endtoken = "*">
<filter token = "date" value = "$ {aujourd'hui}" />
</filterset>
<copie file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<FilterSet refid = "myFilterset" />
</popy>
18. Type de chemin
Les éléments de chemin sont utilisés pour représenter une classe, mais il peut également être utilisé pour représenter d'autres chemins. Lorsqu'ils sont utilisés comme quelques attributs, les différents scores ou colons dans les Écritures routières sont séparés. Lors de la construction, ce séparateur remplacera tous les séparateurs de chemin sur la plate-forme actuelle, et ses attributs sont les suivants.
● L'emplacement représente un fichier ou un répertoire. ANT étend cela dans un chemin absolu en interne.
● REFID est une référence à un chemin défini dans le fichier constructif actuel.
● Le chemin indique une liste de fichiers ou de chemins.
L'exemple de code de code de copie est le suivant:
<path id = "buildpath">
<Fileset refid = "lib.runtime" />
<Fileset refid = "lib.continer" />
<Fileset refid = "lib.extras" />
</ Path>
<path id = "src.paths">
<fileset id = "srcs" dir = ".">
<include name = "src / ** / *. java" />
</fichier>
</ Path>
8. Le code de code de la compilation de l'emballage et de l'exécution de l'ingénierie est le suivant: comme suit:
<?
<! - Le nom est le nom du projet actuel.
<project name = "helloworld" default = "run" basasedir = ".">
<! - La propriété est similaire à une variable simple dans le programme->
<propoperty name = "src" value = "src" />
<propriété name = "dest" value = "class" />
<propriété name = "hello_jar" value = "helloworld.jar" />
<! -
L'objectif est un événement, un événement, une tâche, le nom de la chose actuelle.
->
<! - Initialisation->
<cible name = "init">
<! - Classes répertoire->
<mkdir dir = "$ {dest}" />
<mkdir dir = "temp" />
<mkdir dir = "temp2" />
</ Target>
<! - Compilation->
<Target name = "compile" Detend = "init">
<javac srcdir = "$ {src}" destdir = "$ {dest}" />
<! - Définissez la mémoire JVM
<javac srcdir = "src" fork = "true" />
<javac srcdir = "src" fork = "true" exécutable = "d: / sdk141 / bin / javac"
MemoryMaxiMumSize = "128m" />
->
</ Target>
<! - << 建 ->
<Target name = "build" Dentend = "compile">
<! -
<jar jarfile = "$ {hello_jar}"-basaseir = "$ {dest}" />
Créer un nom pour le fichier package.jar
<jar destfile = "package.jar" basaseir = "classes" />
->
<jar destfile = "$ {hello_jar}"-basedir = "classe">
<! - Ajouter du contenu au fichier principal dans le package JAR->
<manifeste>
<attribut name = "intégré-by" value = "$ {user.name}" />
<attribut name = "main-classe" value = "package.main" /> />
</ manifeste>
</jar>
<! - Copier le fichier jar todir = "Copier dans le répertoire" ->
<copie file = "$ {hello_jar}" tofile = "$ {dest} /temp.jar" />
<copier todir = "test">
<! - DefaultExcludes = "" ->
<fichierset dir = "src">
<inclure name = "** / *. Java" />
</fichier>
</popy>
<copie todir = "temp2">
<fichierset dir = "src">
<et>
<contenir text = "main" />
<size valeur = "1" quand = "plus" />
</ et>
</fichier>
</popy>
<! - Fichier de pot mobile->
<move file = "$ {dest} /temp.jar" tofile = "temp / moveTemp.jar" />
<! - Créer zip->
<zip basseness = "$ {basaseir} / class" zipfile = "temp / output.zip" /> />
<! - Créer tgz->
<gzip src = "classes / ** / *. Classe" zipfile = "output.class.gz" />
<! - Collage zip->
<Unzip src = "output.class.gz" dest = "extractdir" />
<! --- Remplacez l'ancien dans le contenu de l'entrée.
<remplacer file = "input.txt" token = "old" value = "new" />
->
</ Target>
<! --- Run->
<Target name = "run" dépend = "build">
<java classname = "com.hoo.test.helloworm" classpath = "$ {hello_jar}" />
</ Target>
<! - Clear->
<cible name = "clear">
<! - supprimé le fichier généré->
<supprimer dir = "$ {dest}" />
<delete file = "$ {hello_jar}" />
</ Target>
<tstamp>
<Format propriété = "offset_time"
Pattern = "HH: MM: SS"
Offset = "10" unit = "minute" />
</ tstamp>
<! - redémarrer->
<Target name = "Raun" Detend = "Clean, Run">
<echo Message = "### $ {tstamp} # $ {Today} # $ {dstamp} ###" />
<likeing target = "clean" />
<likeing target = "run" />
</ Target>
</rand
Il y a beaucoup de choses à dire. Ant n'est pas difficile. Dans certaines circonstances, l'efficacité et les travaux répétés ont été améliorés.