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.
Komento | Kuvaus |
---|---|
Muurahainen | Käytetään toisen muurahaisprosessin suorittamiseen nykyisestä. |
Copydir | Käytetään koko hakemiston kopioimiseen. |
Kopioi tiedosto | Käytetään yhden tiedoston kopioimiseen. |
Cvs | Käsittelee CVS-arkistosta haettuja paketteja / moduuleja. |
Poistaa | Poistaa joko yhden tiedoston tai kaikki tiedostot määritetystä hakemistosta ja sen alihakemistoista. |
Deltree | Poistaa hakemiston kaikista tiedostoista ja alihakemistoista. |
Exec | Suorittaa järjestelmäkomennon. Kun os-attribuutti on määritetty, komento suoritetaan vain, kun Ant suoritetaan yhdessä määritetyistä käyttöjärjestelmistä. |
Saada | Haetaan tiedosto URL-osoitteesta. |
Jar | Purkit joukko tiedostoja. |
Java | Suorittaa Java-luokan käynnissä olevassa (Ant) virtuaalikoneessa tai haaroittaa toisen virtuaalikoneen, jos se on määritetty. |
Javac | Kääntää lähdepuun käynnissä olevassa (Ant) virtuaalikoneessa. |
Javadoc / Javadoc2 | Luo koodidokumentaatio javadoc-työkalulla. |
Mkdir | Luo hakemiston. |
Omaisuus | Asettaa ominaisuuden (nimen ja arvon perusteella) tai ominaisuuksien joukon (tiedostosta tai resurssista) projektiin. |
Rmic | Suorittaa rmic-kääntäjän tietylle luokalle. |
T-leima | Asettaa nykyisen projektin DSTAMP-, TSTAMP- ja TODAY-ominaisuudet. |
Tyyli | Kä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
, ellei
ja 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.