Ant - Как создать файл Jar с внешними библиотеками

Ant - Как создать файл Jar с внешними библиотеками

В этом уроке мы покажем вам, как использовать скрипт сборки Ant для создания файла Jar и работы с внешними библиотеками / зависимостями проекта.

Используемые технологии:

  1. Затмение 4.2

  2. JDK 1,7

  3. Муравей 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. Структура проекта

Рисунок 1.1: Окончательная структура каталогов проекта в Eclipse IDE.

ant-external-libraries-final

2. Java проект + внешние библиотеки

В Eclipse IDE повторно откройте предыдущий проект JavaAntDateUtils, обновите исходный код, чтобы использоватьlogback иjoda-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();

    }

}

Создайтеlogback.xml и поместите его в папку проектаsrc. Обратитесь к рисунку 1.1

src/logback.xml




    
      

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

      
    

    
      
    

3. Плющ - Получить внешние библиотеки

Мы используем Apache Ivy для получения внешних библиотек / зависимостей проекта.

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



    
    
    
        
    

    
    
        
        
    
    

Впервые загрузите модуль ivy из репозитория Maven center в локальный${user.home}/.ant/lib/ivy.jar.

$ ant ivy

Чтобы загрузить внешние библиотеки, запустите задачу «разрешить». Заявленные библиотеки будут загружены в папку проектаlib.

$ ant resolve

4. build.xml

Просмотрите обновленный скриптbuild.xml, прочтите комментарии, которые не требуют пояснений.

Основные положения :

  1. Управляйте внешними библиотеками проекта с помощью Apache Ivy, просматривайте пространство имен ivy сверху и решайте задачу.

  2. Чтобы скомпилировать исходный код, вам нужно объявить classpath. Просмотрите задачу «compile» и атрибут «classpathref».

  3. В задаче «jar» формирует весь список внешних библиотек и помещает его в файлmanifest.mf.

  4. В задаче «jar» проект jar будет упакован в папку «dist», а все внешние библиотеки будут скопированы из «lib» в «dist / lib».

build.xml


    
        Create a Java Project (JAR) with Ant build script
    

    
    
    
    
    
    
    

    
    
    
        
    

    
    
        
        
    
    

    
        
    

    
    
        
            
            
            
        
    

    
    
        
    

    
    
        
        
            
                
                
            
        
    

    
        
            
        
    

    
    

        

        
        

        
            
                
                
            
        
    

    
        
        
    

    
    

5. Test

Протестируйте проект Java с помощью скрипта 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

Скачать исходный код

Скачать -AntDateUtils-External-Libraries.zip (8 КБ)