Apache Ant – szybki start

Ant – szybki start

Apache Ant to system budowania aplikacji oparty na języku Javy. Ant do opisu kroków procesu budowania aplikacji wykorzystuje pliki XML. Ten wpis ma na celu pokazanie jak skonfigurować oraz wykorzystać narzędzie ANT do zbudowania prostej aplikacji napisanej w języku Java. Zaczniemy od pobrania i konfiguracji narzędzia a następnie zbudujemy plik XML który opisze z kolei w jaki sposób zbudować aplikacji i uzyskać wynikowy plik JAR. Narzędzie ANT pobieramy na dysk swojego komputera ze strony – https://ant.apache.org/bindownload.cgi. W moim przypadku jest to https://apache.mirrors.tworzy.net//ant/binaries/apache-ant-1.9.15-bin.zip. Instalacja narzędzia sprowadza się do konfiguracji zmiennych środowiskowych:

zmienna: ANT_HOME

wartość: C:\Users\nazwa_uzytkownika\Downloads\apache-ant-1.9.15-bin\apache-ant-1.9.15

pamiętajmy również aby zmienną ANT_HOME dodać do zmiennej środowiskowej Path. Testujemy poprzez wykonanie w konsoli polecenia:

ant -v

w wyniku powinniśmy otrzymać wersję zainstalowanego Anta:

Apache Ant(TM) version 1.9.15 compiled on May 10 2020

Poniżej znajduje się prosta klasa:

package pl.javaleader;
 
public class JavaLeader {
    public static void main(String[] args) {
        System.out.println("JavaLeader.pl");
    }
}

Przechodzimy do projektowania pliku build.xml opisującego proces budowania aplikacji:

<project name="HelloWorld" basedir="." default="main">
 
    <property name="src.dir"     value="src"/>
 
    <property name="build.dir"   value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir"     value="${build.dir}/jar"/>
 
    <property name="main-class"  value="oata.HelloWorld"/>
 
    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>
 
    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}"/>
    </target>
 
    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
            </manifest>
        </jar>
    </target>
 
    <target name="run" depends="jar">
        <java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
    </target>
 
    <target name="clean-build" depends="clean,jar"/>
 
    <target name="main" depends="clean,run"/>
 
</project>

Plik ten opisuje kroki jakie prowadzą do powstania wynikowego pliku JAR:

  • clean
  • compile
  • jar

Projekt budujemy wykonując z konsoli niżej zamieszczone polecenie będąc w katalogu gdzie znajduje się plik build.xml:

ant

w wyniku otrzymamy:

Buildfile: C:\Users\mwarycha\Desktop\ant\build.xml
 
clean:
   [delete] Deleting directory C:\Users\mwarycha\Desktop\ant\build
 
compile:
    [mkdir] Created dir: C:\Users\mwarycha\Desktop\ant\build\classes
    [javac] C:\Users\mwarycha\Desktop\ant\build.xml:17: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to C:\Users\mwarycha\Desktop\ant\build\classes
 
jar:
    [mkdir] Created dir: C:\Users\mwarycha\Desktop\ant\build\jar
      [jar] Building jar: C:\Users\mwarycha\Desktop\ant\build\jar\HelloWorld.jar
 
run:
     [java] Hello World
 
main:
 
BUILD SUCCESSFUL
Total time: 4 seconds

Wykonane polecenie ant sprowadza się do wykonania faz – clean oraz run. Uruchomienie pliku jar zależy od kroku – budowania pliku jar. Budowanie pliku jar zależy z kolei od kroku – skompilowania projektu. Czyli zanim zostanie zbudowany wynikowy plik jar to najpierw projekt zostanie skompilowany. Za mechanizm zależności do poszczególnych faz odpowiada instrukcja zawarta w pliku build.xml:

depends

 

Leave a comment

Your email address will not be published.


*