Az Apache Ant hasznlata Java projektekben Brunczel Andrs
Az Apache Ant használata Java projektekben Brunczel András 2007. május 2.
Tartalom • • Bevezetés Build. xml Ant target Ant taszk Ant property Path, classpath, stb. Ant kiterjesztések A. Brunczel 11/27/2020 2
Bevezetés • Cél: a fejlesztés alatti rendszeres tevékenységek automatizálása (kódgenerálás, fordítás, csomagolás, telepítés, tesztelés, stb. ) • Nem csak Java projektek esetében használható (létezik. NET kiterjesztés is) • A projekt konfigurálása egy XML fájlban történik (build. xml) • Shell parancsok helyett beépített taszkok platform független ( make) • Kiterjeszthető Java osztályok segítségével Seite 3 A. Brunczel 11/27/2020 3 Bevezetés Build. xml Ant target Ant taszk Ant property Path, Classpath, stb. Ant kiterjesztések © evosoft Hungary Kft.
Build. xml <? xml version="1. 0"? > <project name="Tech. Day. Sample" default="compile"> Bevezetés <property name="src. dir" value="src"/> <property name="build. dir" value="build"/> <property name="lib. dir" value="lib"/> Build. xml Ant target <path id="project. class. path"> <fileset dir="${lib. dir}" includes="*. jar"/> </path> Ant taszk <target name="compile" depends="clean"> <javac srcdir="${src. dir}" destdir="${build. dir}" classpathref="project. class. path"/> </target> Ant property Path, Classpath, stb. <target name="clean"> Seite 4 <delete includeemptydirs="true"> <fileset dir="${build. dir}" includes="**/*"/> </delete> </target> Ant kiterjesztések </project> A. Brunczel 11/27/2020 4 © evosoft Hungary Kft.
Ant target • • • Target = önmagában végrehajtható legkisebb egység „ant <target-név>” „ant” alapértelmezett target Függőségek megadása: depends attribútum Feltételes végrehajtás: • • <target name="build-module-A" if="module-A-present"/> <target name="build-module-A" unless="module-A-disabled"/> • Tipikus targetek: • • • A. Brunczel Clean Compile Build Deploy Xdoclet Bevezetés Build. xml Ant target Ant taszk Ant property Path, Classpath, stb. Ant kiterjesztések Seite 5 11/27/2020 5 © evosoft Hungary Kft.
Ant taszk • Taszk = végrehajtandó művelet • Beépített taszkok, pl: Bevezetés • java, javac, jar, zip, copy, delete, exec Build. xml • Opcionális taszkok, pl: Ant target • JUnit, Schema. Validate, ejbjar, scp Ant taszk • Írhatsz saját taszkot is: • Java osztály, amely implementálja az org. apache. tools. ant. Task interfészt. • Attribútumok, beágyazott elemek kezelése az osztály Seite 6 metódusai által • Végrehajtáskor az execute() metódus meghívódik A. Brunczel 11/27/2020 6 Ant property Path, Classpath, stb. Ant kiterjesztések © evosoft Hungary Kft.
Példa saját taszkra <? xml version="1. 0"? > <project name="Own. Task. Example" default="main" basedir=". "> <taskdef name="mytask" classname="com. mydomain. My. Very. Own. Task "/> <target name="main"> <mytask message="Hello World! My. Very. Own. Task works!"/> </target> </project> Bevezetés Build. xml Ant target package com. mydomain; import org. apache. tools. ant. Build. Exception ; import org. apache. tools. ant. Task ; Ant taszk public class My. Very. Own. Task extends Task { Path, Classpath, stb. Ant property private String msg; Ant kiterjesztések Seite 7 public void execute() throws Build. Exception { System. out. println(msg); } public void set. Message(String msg) { this. msg = msg; } } A. Brunczel 11/27/2020 7 © evosoft Hungary Kft.
Property • • • Java property-hez vagy a környezeti változókhoz hasonló névérték párosok Nem változók – a beállított érték nem változtatható meg Létrehozása: • • Kívülről: Ant –D<property-name>=<value> Belülről: <property name="src. dir" value="src"/> Bevezetés Build. xml Ant target Felhasználhatók taszkok attribútumaként ${src. dir} formában Feltételes feldolgozás property-k segítségével: <available file="/usr/local/lib" type="dir" property="local. lib. present"/> Ant taszk Ant property Path, Classpath, stb. Ant kiterjesztések Seite 8 <uptodate property="xml. Build. not. Required" targetfile="${deploy}xml. Classes. jar"> <srcfiles dir= "${src}/xml" includes="**/*. dtd"/> </uptodate> <condition property="is. Unix"> <os family=„unix"/> </condition> A. Brunczel 11/27/2020 8 © evosoft Hungary Kft.
Path, Classpath, stb. Példa: <classpath> <pathelement path="${classpath}"/> <fileset dir="lib"> <include name="**/*. jar"/> </fileset> <pathelement location="classes"/> <dirset dir="${build. dir}"> <include name="apps/**/classes"/> Seite 9 <exclude name="apps/**/*Test*"/> </dirset> <filelist refid="third-party_jars"/> </classpath> A. Brunczel 11/27/2020 9 Bevezetés Build. xml Ant target Ant taszk Ant property Path, Classpath, stb. Ant kiterjesztések © evosoft Hungary Kft.
Ant kiterjesztések • Ant Libraries (Ant. Libs) • • . NET Ant. Unit – Ant taszkok tesztelése Bevezetés Build. xml • Ant-Contrib • • • cc taszk – C, C++, Fortran, stb. nyelvek fordítása, DLL-ek készítése Végrehajtást vezérlő taszkok: for, for. Each, if, try, switch, . . . Stb. Pl. : 11/27/2020 Ant taszk Ant property Path, Classpath, stb. <if> <equals arg 1="${foo}" arg 2="bar" /> <then> Seite 10 <echo message="The value of foo is bar" /> </then> <else> <echo message="The value of foo is not bar"/> </else> </if> A. Brunczel Ant target Ant kiterjesztések 10 © evosoft Hungary Kft.
További információ • Ant http: //ant. apache. org Bevezetés Build. xml • Ant-Contrib http: //ant-contrib. sourceforge. net Ant target Ant taszk Ant property Path, Classpath, stb. Ant kiterjesztések Seite 11 A. Brunczel 11/27/2020 11 © evosoft Hungary Kft.
Vége Bevezetés Build. xml Köszönöm a figyelmet! Ant target Ant taszk Kérdések? Ant property Path, Classpath, stb. E-mail: andras. brunczel@evosoft. com Seite 12 A. Brunczel 11/27/2020 12 Ant kiterjesztések © evosoft Hungary Kft.
- Slides: 12