Ant - Comment créer un fichier JAR avec des bibliothèques externes

Ant - Comment créer un fichier Jar avec des bibliothèques externes

Dans ce didacticiel, nous vous montrerons comment utiliser le script de génération Ant pour créer un fichier Jar et travailler avec les bibliothèques / dépendances externes du projet.

Technologies utilisées:

  1. Eclipse 4.2

  2. JDK 1.7

  3. Ant 1.9.4

  4. Ant-Ivy 2.4

  5. logback 1.1.2

  6. joda-time 2.5

P.S Previous Ant Java project will be reused.

1. Structure du projet

Figure 1.1: La structure finale du répertoire du projet, dans Eclipse IDE.

ant-external-libraries-final

2. Projet Java + bibliothèques externes

Dans Eclipse IDE, rouvrez le projet Java précédentAntDateUtils, mettez à jour le code source pour utiliserlogback etjoda-time.

src/com/example/core/utils/DateUtils.java

package com.example.core.utils;

import org.joda.time.LocalDate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DateUtils {

    private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);

    public static void main(String[] args) {

        logger.debug("[MAIN] Current Date : {}", getLocalCurrentDate());
        System.out.println(getLocalCurrentDate());

    }

    private static String getLocalCurrentDate() {

        LocalDate date = new LocalDate();
        return date.toString();

    }

}

Créez unlogback.xml et placez-le dans le dossier du projetsrc. Se référer à la figure 1.1

src/logback.xml




    
      

        
            ANT + LogBack : %-5level %logger{36} - %msg%n
        

      
    

    
      
    

3. Ivy - Obtenir des bibliothèques externes

Nous utilisons Apache Ivy pour obtenir les bibliothèques / dépendances externes du projet.

3.1 Create this file ivy.xml :

ivy.xml


    
    
        
        
        
    

3.2 Update build.xml, add ivy namespace on top, and “ivy” task to download the ivy module, and “resolve” task to ask Ivy module to download the external libraries.

build.xml



    
    
    
        
    

    
    
        
        
    
    

Pour la première fois, téléchargez le module ivy du référentiel du centre Maven vers les${user.home}/.ant/lib/ivy.jar locaux.

$ ant ivy

Pour télécharger les bibliothèques externes, exécutez la tâche «résoudre». Les bibliothèques déclarées seront téléchargées dans le dossier du projetlib.

$ ant resolve

4. build.xml

Passez en revue le script mis à jour debuild.xml, lisez les commentaires pour plus d'explications.

Points principaux :

  1. Gérez les bibliothèques externes du projet avec Apache Ivy, passez en revue l'espace de noms ivy en haut et tâchez «résoudre».

  2. Pour compiler le code source, vous devez déclarer le chemin de classe. Passez en revue la tâche «compiler» et l'attribut «classpathref».

  3. Dans la tâche «jar», construit la liste complète des bibliothèques externes et la place dans le fichiermanifest.mf.

  4. Dans la tâche «jar», le projet jar sera emballé dans le dossier «dist» et toutes les bibliothèques externes seront copiées de «lib» vers «dist / lib».

build.xml


    
        Create a Java Project (JAR) with Ant build script
    

    
    
    
    
    
    
    

    
    
    
        
    

    
    
        
        
    
    

    
        
    

    
    
        
            
            
            
        
    

    
    
        
    

    
    
        
        
            
                
                
            
        
    

    
        
            
        
    

    
    

        

        
        

        
            
                
                
            
        
    

    
        
        
    

    
    

5. Test

Testez le projet Java avec le script de génération Ant.

5.1 Jar it.

$ pwd
/Users/example/Documents/workspace/AntDateUtils

$ ant
Buildfile: /Users/example/Documents/workspace/AntDateUtils/build.xml

clean:
   [delete] Deleting directory /Users/example/Documents/workspace/AntDateUtils/bin
   [delete] Deleting directory /Users/example/Documents/workspace/AntDateUtils/dist

init:
    [mkdir] Created dir: /Users/example/Documents/workspace/AntDateUtils/bin

compile:
    [javac] Compiling 1 source file to /Users/example/Documents/workspace/AntDateUtils/bin

copy-dependencies:
     [copy] Copying 12 files to /Users/example/Documents/workspace/AntDateUtils/dist/lib

jar:
     [echo] classpath.name : ... lib/joda-time-2.5.jar lib/logback-classic-1.1.2.jar lib/logback-core-1.1.2.jar lib/mail-1.4.jar ...

      [jar] Building jar: /Users/example/Documents/workspace/AntDateUtils/dist/DateUtils.jar

main:

BUILD SUCCESSFUL
Total time: 1 second

5.2 Inspects the generated jar file.

$ jar -tf dist/DateUtils.jar

META-INF/
META-INF/MANIFEST.MF
com/
com/example/
com/example/core/
com/example/core/utils/
com/example/core/utils/DateUtils.class

META-INF/MANIFEST.MF

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_05-b05 (Oracle Corporation)
Main-Class: com.example.core.utils.DateUtils
Class-Path: lib/activation-1.1.jar lib/commons-compiler-2.6.1.jar lib/
 geronimo-jms_1.1_spec-1.0.jar lib/groovy-all-2.0.7.jar lib/janino-2.6
 .1.jar lib/joda-convert-1.2.jar lib/joda-time-2.5.jar lib/logback-cla
 ssic-1.1.2.jar lib/logback-core-1.1.2.jar lib/mail-1.4.jar lib/servle
 t-api-2.5.jar lib/slf4j-api-1.7.6.jar

5.3 Run the Jar file.

$ pwd
/Users/example/Documents/workspace/AntDateUtils

$ java -jar dist/DateUtils.jar

16:28:43.957 [main] DEBUG com.example.core.utils.DateUtils - [MAIN] Current Date : 2014-11-21
2014-11-21

5.4 Run the Jar file again, with logback.xml.

$ pwd
/Users/example/Documents/workspace/AntDateUtils

$ java -jar -Dlogback.configurationFile=src/logback.xml dist/DateUtils.jar

16:34:43,746 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [src/logback.xml] at [file:/Users/example/Documents/workspace/AntDateUtils/src/logback.xml]
//...

ANT + LogBack : DEBUG com.example.core.utils.DateUtils - [MAIN] Current Date : 2014-11-21
2014-11-21

Télécharger le code source

Téléchargez-le -AntDateUtils-External-Libraries.zip (8 Ko)