Programiranje

Avtomatizirajte svoj postopek gradnje z uporabo Java in Ant

Opredeljeni postopek je eno najbolj potrebnih, a pogosto najmanj uporabljenih orodij pri razvoju programske opreme. Po naravi je splošna naloga, ki spremlja razvojna prizadevanja. Določen postopek gradnje zagotavlja, da je programska oprema v vašem razvojnem projektu izdelana na popolnoma enak način vsakič, ko se izvede gradnja. Ko postaja postopek gradnje bolj zapleten - na primer z gradnjami EJB ali dodatnimi nalogami - postaja takšna standardizacija bolj potrebna. Natančno vrsto korakov bi morali čim bolj določiti, dokumentirati in avtomatizirati.

Zakaj potrebujem definiran postopek gradnje?

Določen postopek gradnje je bistveni del vsakega razvojnega cikla, saj pomaga zapolniti vrzel med razvojnim, integracijskim, testnim in proizvodnim okoljem. Sam postopek gradnje bo pospešil selitev programske opreme iz enega okolja v drugo. Odstrani tudi številna vprašanja, povezana s prevajanjem, učnimi stezami ali lastnostmi, ki veliko projektov stanejo čas in denar.

Kaj je Ant?

Ant je orodje za skriptiranje, neodvisno od platforme, ki vam omogoča, da sestavite svoje skripte za gradnjo na približno enak način kot orodje "make" v C ali C ++. V programu Ant lahko uporabite veliko število vgrajenih opravil brez kakršnih koli prilagoditev. Nekatere najpomembnejše naloge so prikazane v naslednji tabeli, podrobneje pa so razložene v primeru, ki sledi.

Tu je nekaj uporabnih ukazov, ki so vgrajeni v distribucijo Ant.

UkazOpis
MravljaUporablja se za izvedbo drugega mravljega procesa znotraj trenutnega.
CopydirUporablja se za kopiranje celotnega imenika.
Kopiraj datotekoUporablja se za kopiranje ene datoteke.
CvsObravnava pakete / module, pridobljene iz skladišča CVS.
IzbrišiIzbriše eno datoteko ali vse datoteke v določenem imeniku in njegovih podimenikih.
DeltreeIzbriše imenik z vsemi datotekami in podimeniki.
IzvIzvede sistemski ukaz. Ko je podan atribut os, se ukaz izvrši le, če se Ant zažene v enem od podanih operacijskih sistemov.
PojdiPridobi datoteko iz URL-ja.
JarJars nabor datotek.
JavaIzvede razred Java v delujočem (Ant) VM ali forkne drug VM, če je naveden.
JavacSestavi izvorno drevo v delujoči VM (Ant).
Javadoc / Javadoc2Ustvari dokumentacijo kode z uporabo orodja javadoc.
MkdirNaredi imenik.
NepremičninaNastavi lastnost (po imenu in vrednosti) ali nabor lastnosti (iz datoteke ali vira) v projektu.
RmicZažene prevajalnik rmic za določen razred.
TstampNastavi lastnosti DSTAMP, TSTAMP in TODAY v trenutnem projektu.
SlogObdela niz dokumentov prek XSLT.

Čeprav so na voljo druga orodja za izdelavo programske opreme, je Ant enostaven za uporabo in ga je mogoče obvladati v nekaj minutah. Poleg tega Ant omogoča ustvarjanje razširjene funkcionalnosti z razširitvijo nekaterih svojih razredov. To razširitev bom pokazal v naslednjem primeru.

Kaj moram uporabiti Ant?

V računalnik morate namestiti tri komponente, da zaženete Ant: JDK, razčlenjevalnik XML in Ant (za povezave glejte Viri).

V mnogih primerih je razčlenjevalnik XML del datotek lib, ki se distribuirajo z zagonom Servlet ali spletnim strežnikom. V nasprotnem primeru zadostuje brezplačni razčlenjevalnik XML s spletnega mesta java.sun.com.

Namestitev Ant vključuje prenos datotek, dodajanje knjižnic razredov na pot razredov in dodajanje binarnih datotek Ant na pot.

Primer scenarija

Ta primer bi vam pomagal pokazati vrednost Ant in zagotoviti vpogled v njegove prednosti in kako ga lahko uporabite.

Ker je velik del trenutnega razvoja Jave osredotočen na Javo na strežniku, sem za primer izbral strežniško aplikacijo. Razvijalce, ki delajo na strežniških aplikacijah Java, običajno zanima sestavljanje strežnikov, razmestitev datotek JSP in uvajanje datotek HTML, konfiguracijskih datotek ali slik.

Skupna shema za to gradnjo bi vključevala razvoj majhnih skriptov v jezikih, specifičnih za platformo, ki temeljijo na operacijskem sistemu strežnika. Na primer, razvijalec, ki dela na stroju NT, lahko ustvari paketno datoteko, ki izvaja naloge prevajanja in nato zažene razmestitev. Če pa bi bilo v produkcijskem okolju Unix ali Linux, bi moral razvijalec prepisati skript in zagotoviti sinhronizacijo skriptov.

V redu, pokaži mi, kako to deluje

Upam, da sem vas prepričal, da je treba uporabiti Ant, in pokazal, kako enostavno ga je namestiti. Zdaj vam bom pokazal, kako preprost je Ant za uporabo, tako da sem si ogledal primer, ki izvaja preprosto prevajanje in razmestitev.

Preprost postopek gradnje z Ant (simple.xml)

V zgornjem primeru je mogoče veliko razložiti. Najprej morate razumeti strukturo datoteke simple.xml. To je dobro oblikovana datoteka XML, ki vsebuje projektno entiteto, ki jo sestavlja več ciljnih entitet.

Prva vrstica vsebuje informacije o celotnem projektu, ki ga je treba zgraditi.

Najpomembnejši elementi projektne vrstice so privzeto in basedir.

The privzeto atribut se sklicuje na privzeti cilj, ki ga je treba izvesti. Ker je Ant orodje za gradnjo ukazne vrstice, je v datoteki Ant mogoče izvesti le podnabor ciljnih korakov. Lahko bi na primer izvedel naslednji ukaz:

% ant-buildfile simple.xml init 

To bo izvedlo Mravlja in zaženite datoteko simple.xml, dokler se v cilj je dosežen. Torej, v tem primeru je privzeta vrednost razporediti. Proces Ant, ki se prikliče v naslednji vrstici, se bo izvajal skozi simple.xml v datoteki razporediti dosežen je ukaz:

% ant-buildfile simple.xml 

The basedir atribut je dokaj samoumeven, saj je osnovni imenik, iz katerega se pridobijo relativni sklici v gradbeni datoteki. Vsak projekt ima lahko samo enega basedir atribut, tako da lahko izberete, ali vključite popolnoma kvalificirano lokacijo imenika ali razbijete veliko projektno datoteko v manjše projektne datoteke z različnimi basedir lastnosti.

Naslednja zanimiva vrstica je ciljna vrstica. Tu sta prikazani dve različici:

The cilj element vsebuje štiri atribute: ime, če, razen, in odvisno. Ant zahteva ime atribut, ostali trije atributi pa so neobvezni.

Uporaba odvisno, lahko naloge Ant zložite tako, da se odvisna naloga ne zažene, dokler naloga, od katere je odvisna, ni dokončana. V zgornjem primeru se opravilo čiščenja ne začne šele, ko se v naloga je končana. The odvisno atribut lahko vsebuje tudi seznam ločenih vrednosti, ki kaže več nalog, od katerih je odvisna naloga v razpravi.

The če in razen ukazi vam omogočajo, da določite ukaze, ki jih je treba izvesti če določena lastnost je nastavljena oz razen ta lastnost je nastavljena. The če se izvede, ko je nastavljena vrednost lastnosti, in razen se izvede, če vrednost ni nastavljena. Lahko uporabite na voljo ukaz za nastavitev teh lastnosti, kot je prikazano v naslednjem primeru, ali pa jih lahko nastavite prek ukazne vrstice.

The v Cilj iz preprostega primera vsebuje štiri vrstice lastnine ukazi, kot je prikazano tukaj:

Te lastnine vrstice omogočajo določitev pogosto uporabljenih imenikov ali datotek. Lastnost je preprost par imenskih vrednosti, ki vam omogoča, da se na imenik ali datoteko sklicujete kot na logično entiteto kot na fizično.

Če bi se radi sklicevali na sourceDir spremenljivko pozneje v datoteki Ant, lahko preprosto uporabite naslednjo sintakso, da opozorite Ant, da pridobi vrednost za to oznako: $ {sourceDir}.

Dva druga ukaza, ki sta prisotna v zgornji gradbeni datoteki, sta:

Ti ukazi se uporabljajo za zagotovitev, da v datoteki outputDir (ali razredih imenik, ko je omenjen zgoraj). Prvi ukaz odstrani celotno drevo pod outputDir. Drugi ukaz znova ustvari imenik.

Zadnja vrstica, ki razvijalca najbolj zanima, je naslednja vrstica za prevajanje:

The javac ukaz zahteva izvorni imenik (vhodno mesto datotek .java) in ciljni imenik (izhodno mesto datoteke .classes). Pomembno je omeniti, da morajo vsi imeniki obstajati pred zagonom Mravlja ali ga ustvarite z uporabo mkdir ukaz. Ant ne ustvarja imenikov na podlagi intuicije, zato morate ustvariti outputDir, uporabljati mkdir ukaz pred zgoraj opisanim korakom.

Po sestavi Naloga je končana, razporediti naloga bo izvedla operacijo kopiranja, da bo vse datoteke JSP premaknila iz izvornega imenika v imenik razmestitve. Z uporabo copydir ukaz, kopirate celoten imenik JSP z ene lokacije na drugo. Uporabil sem copyfile ukaz za kopiranje posamezne datoteke z lastnostmi kot del gradnje.

Čeprav je za razlago primera trajalo več vrstic, bi moralo biti jasno, da je Ant enostavno orodje za uporabo. Če uporabite to datoteko gradnje kot izhodišče, bi morali Ant vključiti v svoje razvojne napore. The Mravlja ukazi, prikazani v zgornjem primeru, imajo nadaljnjo funkcionalnost, nekatere bodo obravnavane v tem članku, preostanek pa je prepuščen vam skupaj s sklici na dokumentacijo.

Pomembne naloge

Prepuščeno vam je, da preberete vgrajene naloge, vključene v distribucijo Ant. Za informacije o vsakem ukazu glejte uporabniški priročnik v virih. Za primere dodatnih možnosti, ki so na voljo upravitelju gradnje brez kakršnih koli prilagoditev, sem izbral dva pogosto uporabljena ukaza.

Prevajanje kode (vključno z EJB-ji)

V preprostem primeru, o katerem smo že govorili, ste videli preprosto obliko javac ukaz. Zdaj, če ga podrobneje preučite, vidite, da lahko določite zastavice prevajanja, kot so zastaranje, odpravljanje napak ali optimizacija, pa tudi datoteke, ki bodo ali ne bodo vključene v prevajanje.

Lahko uporabite vključi / izključi entitete znotraj javac Naloga za vključitev / izključitev datotek, ki ustrezajo vzorcu v ime atribut iz kompilacije. Iz zgornjega primera želite vključiti datoteke v katerem koli imeniku, ki se konča z .java, hkrati pa želite izključiti datoteke z imenom Script.java, razen če je lastnost bsf.present je nastavljeno na true.

Vi nastavite bsf.present lastnost z uporabo naslednje naloge, ki išče po razredu določeno in nastavljeno ime razreda bsf.present glede na rezultate iskanja:

The javac ukaz ne bo vključeval datotek, imenovanih version.txt, iz zbirke, ki temelji na zgornjem ukazu za izključitev.

Ustvarjanje javadoca

Druga naloga, ki jo lahko Ant pomaga avtomatizirati, je generacija javadoca. Za ustvarjanje javadoca lahko uporabite naslednji ukaz:

Paketi določajo celotne pakete, ki jih bo vključeval javadoc. The izvorna pot atribut kaže na lokacijo izvornih datotek. The javadoc ukaz vsebuje tudi atribute, ki omogočajo določitev naslova okna in dokumenta. Obvestilo o avtorskih pravicah lahko vključite tudi na dno vsake strani javadoc z uporabo spodaj atribut.

Ali lahko Ant opravi XYZ?

Na tej točki ste v postopku gradnje videli nekatere možne naloge, ki jih Ant lahko avtomatizira. Te naloge so vključene v okvir Ant. Morda boste Ant želeli prilagoditi tako, da vam bo pomagal pri izvajanju nekaterih težjih nalog, kot sta gradnja EJB-jev in upravljanje oddaljene konfiguracije. Nekateri boste morda želeli povečati Antove možnosti poročanja ali zgraditi uporabniški vmesnik, ki lahko zažene postopek Ant.

Preprost odgovor na vprašanje "Ali lahko Ant naredi XYZ?" je "Da, vendar ga boste morda morali prilagoditi."

Podaljšanje Ant

Na tej točki je zanimivo razpravljati o dveh razširitvah Ant. So povečano poročanje in zmožnost oddaljene distribucije kode z uporabo Ant.

Izboljšave poročanja

$config[zx-auto] not found$config[zx-overlay] not found