Ohjelmointi

Automatisoi rakennusprosessi Java ja Ant

Määritelty prosessi on yksi tarpeellisimmista, mutta usein vähiten käytetyistä työkaluista ohjelmistokehityksessä. Se on luonnostaan ​​yleinen tehtävä, joka liittyy kehitystyöhön. Määritetty rakennusprosessi varmistaa, että kehitysprojektisi ohjelmisto rakennetaan täsmälleen samalla tavalla joka kerta, kun koontiversio suoritetaan. Kun rakennusprosessi muuttuu monimutkaisemmaksi - esimerkiksi EJB-koontiversioilla tai lisätehtävillä - on entistä tarpeellisempaa saavuttaa tällainen standardointi. Sinun tulisi luoda, dokumentoida ja automatisoida tarkka vaiheiden sarja mahdollisimman paljon.

Miksi tarvitsen määritellyn rakennusprosessin?

Määritelty rakennusprosessi on olennainen osa kehityskiertoa, koska se auttaa poistamaan kehitys-, integrointi-, testaus- ja tuotantoympäristöjen välisen kuilun. Pelkkä rakennusprosessi nopeuttaa ohjelmistojen siirtymistä ympäristöstä toiseen. Se poistaa myös monia kokoamiseen, luokkatietä tai ominaisuuksiin liittyviä kysymyksiä, jotka maksavat monille projekteille aikaa ja rahaa.

Mikä on Ant?

Ant on alustasta riippumaton komentosarjatyökalu, jonka avulla voit rakentaa koontikomentosarjosi samalla tavalla kuin "make" -työkalu C- tai C ++ -sivulla. Voit käyttää Antissa paljon sisäänrakennettuja tehtäviä ilman mukautuksia. Jotkut tärkeimmistä tehtävistä on esitetty seuraavassa taulukossa, mutta ne on selitetty tarkemmin seuraavassa esimerkissä.

Tässä on joitain hyödyllisiä komentoja, jotka on rakennettu Ant-jakeluun.

KomentoKuvaus
MuurahainenKäytetään toisen muurahaisprosessin suorittamiseen nykyisestä.
CopydirKäytetään koko hakemiston kopioimiseen.
Kopioi tiedostoKäytetään yhden tiedoston kopioimiseen.
CvsKäsittelee CVS-arkistosta haettuja paketteja / moduuleja.
PoistaaPoistaa joko yhden tiedoston tai kaikki tiedostot määritetystä hakemistosta ja sen alihakemistoista.
DeltreePoistaa hakemiston kaikista tiedostoista ja alihakemistoista.
ExecSuorittaa järjestelmäkomennon. Kun os-attribuutti on määritetty, komento suoritetaan vain, kun Ant suoritetaan yhdessä määritetyistä käyttöjärjestelmistä.
SaadaHaetaan tiedosto URL-osoitteesta.
JarPurkit joukko tiedostoja.
JavaSuorittaa Java-luokan käynnissä olevassa (Ant) virtuaalikoneessa tai haaroittaa toisen virtuaalikoneen, jos se on määritetty.
JavacKääntää lähdepuun käynnissä olevassa (Ant) virtuaalikoneessa.
Javadoc / Javadoc2Luo koodidokumentaatio javadoc-työkalulla.
MkdirLuo hakemiston.
OmaisuusAsettaa ominaisuuden (nimen ja arvon perusteella) tai ominaisuuksien joukon (tiedostosta tai resurssista) projektiin.
RmicSuorittaa rmic-kääntäjän tietylle luokalle.
T-leimaAsettaa nykyisen projektin DSTAMP-, TSTAMP- ja TODAY-ominaisuudet.
TyyliKäsittelee joukon asiakirjoja XSLT: n kautta.

Muita työkaluja on saatavana ohjelmistokehitysten tekemiseen, mutta Ant on helppokäyttöinen ja hallittavissa muutamassa minuutissa. Lisäksi Ant antaa sinun luoda laajennettuja toimintoja laajentamalla joitain luokkia. Esitän tämän laajennuksen seuraavassa esimerkissä.

Mitä minun on käytettävä Antia?

Antin ajamiseksi sinun on asennettava koneellesi kolme komponenttia: JDK, XML-jäsennin ja Ant (katso linkit Resursseista).

Monissa tapauksissa XML-jäsennin on osa lib-tiedostoja, jotka jaetaan Servlet-juoksijan tai Web-palvelimen kanssa. Jos ei, java.sun.com-sivuston ilmainen XML-jäsennin riittää.

Muurahaisasennus koostuu tiedostojen lataamisesta, luokan kirjastojen lisäämisestä luokkatielle ja Ant-binäärien lisäämisestä polkuun.

Esimerkkiskenaario

Tämän esimerkkiskenaarion pitäisi auttaa osoittamaan muurahaisen arvo ja antaa käsityksen sen eduista ja siitä, miten voit käyttää sitä.

Koska suuri osa nykyisestä Java-kehityksestä on keskittynyt palvelinpuoleiseen Java-sovellukseen, olen valinnut esimerkkiin palvelinpuolen sovelluksen. Palvelinpuolen Java-sovelluksissa työskentelevät kehittäjät ovat yleensä kiinnostuneita servlet-sovellusten kokoamisesta, JSP-tiedostojen käyttöönotosta ja HTML-tiedostojen, määritystiedostojen tai kuvien käyttöönotosta.

Yhteinen järjestelmä tämän rakennuksen tekemiseksi edellyttäisi pienten komentosarjojen kehittämistä alustakohtaisilla kielillä palvelimen käyttöjärjestelmän perusteella. Esimerkiksi NT-koneella työskentelevä kehittäjä voi luoda erätiedoston, joka suorittaa kokoamistehtävät ja suorittaa sitten käyttöönoton. Jos tuotantoympäristössä olisi kuitenkin Unix tai Linux, kehittäjän olisi kirjoitettava komentosarja uudelleen varmistaen, että komentosarjat ovat synkronoituja.

OK, näytä miten tämä toimii

Joten olen toivottavasti vakuuttanut sinut tarpeesta käyttää Antia ja osoittanut kuinka helppoa se on asentaa. Nyt näytän sinulle kuinka yksinkertaista Antia on käytettävä käymällä läpi esimerkki, joka suorittaa yksinkertaisen kokoamisen ja käyttöönoton.

Yksinkertainen rakennusprosessi Antilla (simple.xml)

Edellä olevassa esimerkissä on paljon selitettävää. Ensinnäkin sinun tulisi ymmärtää simple.xml-tiedoston rakenne. Se on hyvin muotoiltu XML-tiedosto, joka sisältää projektikokonaisuuden, joka koostuu useista kohdekokonaisuuksista.

Ensimmäisellä rivillä on tietoa rakennettavasta projektista.

Projektirivin tärkeimmät elementit ovat oletuksena ja perustuu.

oletuksena attribute viittaa suoritettavaan oletuskohteeseen. Koska Ant on komentorivin rakennustyökalu, on mahdollista suorittaa vain osa kohdavaiheiden joukosta Ant-tiedostossa. Voisin esimerkiksi suorittaa seuraavan komennon:

% ant -buildfile simple.xml init 

Se toteuttaa muurahainen -komento ja suorita simple.xml-tiedoston läpi, kunnes sen sisällä tavoite on saavutettu. Joten tässä esimerkissä oletus on ottaa käyttöön. Seuraavassa rivissä kutsuttu Ant-prosessi kulkee simple.xml tiedosto, kunnes ottaa käyttöön komento saavutetaan:

% ant -buildfile simple.xml 

perustuu attribuutti on melko itsestään selvä, koska se on perushakemisto, josta rakennustiedoston sisältämät suhteelliset viitteet haetaan. Jokaisella projektilla voi olla vain yksi perustuu -määritettä, jotta voit joko sisällyttää täysin hyväksytyn hakemiston sijainnin tai jakaa suuren projektitiedoston pienempiin projektitiedostoihin, joissa on erilainen perustuu määritteet.

Seuraava kiinnostava rivi on kohderivi. Tässä on kaksi eri versiota:

kohde elementti sisältää neljä määritettä: nimi, jos, elleija riippuu. Muurahainen vaatii nimi attribuutti, mutta muut kolme määritettä ovat valinnaisia.

Käyttämällä riippuu, voit pinota Ant-tehtävät niin, että riippuvainen tehtävä ei aloiteta ennen kuin tehtävä, josta se riippuu, on suoritettu. Yllä olevassa esimerkissä puhdas tehtävä alkaa vasta, kun sen sisällä tehtävä on suoritettu. riippuu attribuutti voi sisältää myös luettelon pilkuilla erotetuista arvoista, jotka osoittavat useita tehtäviä, joista keskusteltava tehtävä riippuu.

jos ja ellei komentojen avulla voit määrittää komennot, jotka joko suoritetaan jos tietty ominaisuus on asetettu tai ellei että ominaisuus on asetettu. jos suoritetaan, kun ominaisuuden arvo on asetettu, ja ellei suoritetaan, jos arvoa ei ole asetettu. Voit käyttää saatavilla komento asettaa nämä ominaisuudet seuraavassa esimerkissä esitetyllä tavalla, tai voit asettaa ne komentoriviltä.

sen sisällä Yksinkertaisen esimerkin kohde sisältää neljä riviä omaisuus komentoja tässä esitetyllä tavalla:

Nämä omaisuus riveillä voit määrittää yleisesti käytetyt hakemistot tai tiedostot. Ominaisuus on yksinkertainen nimi-arvopari, jonka avulla voit viitata hakemistoon tai tiedostoon loogisena kokonaisuutena fyysisen sijaan.

Jos haluat viitata sourceDir muuttuja myöhemmin Ant-tiedostossa, voit yksinkertaisesti käyttää seuraavaa syntaksia hälyttämään Antia tämän tagin arvon saamiseksi: $ {sourceDir}.

Kaksi muuta komentoa, jotka ovat yllä olevassa rakennustiedostossa, ovat:

Näitä komentoja käytetään varmistamaan, että tiedostossa ei ole ylimääräisiä tiedostoja outputDir (tai luokat hakemistoon, kun edellä viitataan). Ensimmäinen komento poistaa koko puun outputDir. Toinen komento luo hakemiston uudelleen.

Viimeinen kehittäjää kiinnostavin rivi on seuraava kokoamisrivi:

javac -komento vaatii lähdehakemiston (.java-tiedostojen syöttösijainti) ja kohdehakemiston (.classes-tiedoston lähtöpaikka). On tärkeää huomata, että kaikkien hakemistojen on oltava joko olemassa ennen muurahainen -komento tai luodaan mkdir komento. Ant ei luo intuitioon perustuvia hakemistoja, joten sinun on luotava outputDir, käyttämällä mkdir -komento ennen yllä olevaa kokoamisvaihetta.

Jälkeen koota tehtävä on suoritettu, ottaa käyttöön task suorittaa kopiointitoiminnon siirtää kaikki JSP-tiedostot lähdehakemistosta käyttöönottohakemistoon. Käyttämällä kopydir -komennolla, kopioit koko JSP-hakemiston paikasta toiseen. Käytin kopioi tiedosto komento kopioida yksi ominaisuustiedosto osana koontiversiota.

Vaikka esimerkin selittäminen kesti useita rivejä, pitäisi olla ilmeistä, että Ant on helppokäyttöinen työkalu. Käyttämällä tätä rakennustiedostoa lähtökohtana sinun pitäisi pystyä sisällyttämään Ant Antin kehitystyöhön. muurahainen Yllä olevassa esimerkissä esitetyillä komennoilla on lisätoimintoja, joista joitain käsitellään tässä artikkelissa, loput jätetään sinulle yhdessä viittausten kanssa dokumentaatioon.

Tärkeät tehtävät

Voit jättää Ant-jakeluun sisältyvien sisäänrakennettujen tehtävien lukemisen. Katso lisätietoja kustakin komennosta Resurssien käyttöoppaasta. Olen valinnut kaksi yleisesti käytettyä komentoa esimerkkeinä rakennusvalvojan käytettävissä olevista lisäasetuksista ilman mukautuksia.

Koodin laatiminen (mukaan lukien EJB)

Aiemmin keskustellussa yksinkertaisessa esimerkissä näet yksinkertaisen muodon javac komento. Nyt, jos tarkastelet sitä tarkemmin, huomaat, että voit määrittää kokoamisliput, kuten vanhentaminen, virheenkorjaus tai optimointi, sekä tiedostot, jotka sisällytetään tai ei sisällytetä kokoelmaan.

Voit käyttää sisällyttää / sulkea pois yhteisössä javac tehtävä sisällyttää / sulkea pois tiedostoja, jotka vastaavat mallia nimi attribuutti kokoelmasta. Yllä olevasta esimerkistä haluat sisällyttää tiedostot mihin tahansa hakemistoon, joka päättyy .java-tiedostoon, mutta samalla haluat sulkea pois tiedostot nimeltä Script.java, ellei ominaisuutta ole bsf. läsnä on tosi.

Sinä asetat bsf. läsnä ominaisuutta seuraavan tehtävän avulla, joka etsii luokan polulta määritetyn ja asetetun luokan nimen bsf. läsnä hakutulosten mukaan:

javac -komento ei sisällä tiedostoja, joita kutsutaan version.txt-tiedostoksi yllä olevan komennon perusteella.

Javadocin luominen

Toinen tehtävä, jonka Ant voi auttaa automatisoimaan, on javadocin luominen. Voit luoda javadocin seuraavalla komennolla:

Paketit määrittävät javadocin sisältämät kokonaispaketit. lähdepolku määritä pisteet lähdetiedostojen sijaintiin. javadoc -komento tarjoaa myös määritteet, joiden avulla voit määrittää ikkunan ja asiakirjan otsikon. Voit myös lisätä tekijänoikeusilmoituksen jokaisen javadoc-sivun alaosaan käyttämällä pohjassa määritteen.

Voiko Ant tehdä XYZ: ää?

Tässä vaiheessa olet nähnyt rakennusprosessissasi joitain mahdollisia tehtäviä, jotka Ant voi automatisoida. Nämä tehtävät sisältyvät Ant: n laatikkoon. Haluat ehkä mukauttaa Antia helpottamaan vaikeita tehtäviä, kuten EJB-tiedostojen rakentamista ja etäasetusten hallintaa. Jotkut teistä saattavat haluta lisätä Antin raportointimahdollisuuksia tai rakentaa käyttöliittymän, joka voi suorittaa Ant-prosessin.

Yksinkertainen vastaus kysymykseen "Voiko Ant tehdä XYZ: ää?" on "Kyllä, mutta saatat joutua mukauttamaan sitä."

Antin pidentäminen

Kahdesta muurahaislaajennuksesta on mielenkiintoista keskustella tässä vaiheessa. Ne ovat lisääntynyt raportointi ja kyky jakaa koodia etänä Antin avulla.

Raportoinnin parannukset