Programavimas

Automatizuokite savo kūrimo procesą naudodami „Java“ ir „Ant“

Apibrėžtas procesas yra vienas iš būtiniausių, bet dažniausiai rečiau naudojamų įrankių programinės įrangos kūrime. Iš prigimties tai yra papildoma užduotis, lydinti plėtros pastangas. Apibrėžtas kūrimo procesas užtikrina, kad jūsų kūrimo projekto programinė įranga bus kuriama tokiu pačiu būdu kiekvieną kartą, kai vykdomas kūrimas. Kai kūrimo procesas tampa sudėtingesnis - pavyzdžiui, atliekant EJB versijas ar papildomas užduotis, tampa labiau būtina pasiekti tokį standartizavimą. Turėtumėte kiek įmanoma nustatyti, dokumentuoti ir automatizuoti tikslią veiksmų seką.

Kodėl man reikia apibrėžto kūrimo proceso?

Apibrėžtas kūrimo procesas yra būtina bet kurio kūrimo ciklo dalis, nes jis padeda panaikinti atotrūkį tarp kūrimo, integravimo, bandymo ir gamybos aplinkos. Vien kūrimo procesas pagreitins programinės įrangos perkėlimą iš vienos aplinkos į kitą. Tai taip pat pašalina daugybę klausimų, susijusių su kompiliacija, klasės keliu ar ypatybėmis, kurios daugeliui projektų kainuoja laiko ir pinigų.

Kas yra skruzdė?

„Ant“ yra nuo platformos nepriklausomas scenarijų įrankis, leidžiantis kurti savo scenarijus panašiai kaip „make“ įrankis C arba C ++. „Ant“ galite naudoti daugybę įmontuotų užduočių be pritaikymo. Kai kurios svarbiausios užduotys parodytos šioje lentelėje, tačiau išsamiau paaiškintos tolesniame pavyzdyje.

Čia yra keletas naudingų komandų, kurios yra sukurtos skruzdžių paskirstyme.

Komandaapibūdinimas
SkruzdėNaudojamas kitam skruzdžių procesui vykdyti iš dabartinio.
„Copydir“Naudojamas kopijuoti visą katalogą.
CopyfileNaudojamas vieno failo kopijavimui.
CvsTvarko paketus / modulius, gautus iš CVS saugyklos.
IštrintiIštrina vieną failą arba visus failus iš nurodyto katalogo ir jo pakatalogių.
DeltreeIštrinamas katalogas su visais failais ir pakatalogiais.
ExecVykdo sistemos komandą. Kai nurodomas os atributas, komanda vykdoma tik tada, kai „Ant“ vykdoma vienoje iš nurodytų operacinių sistemų.
GaukiteGauna failą iš URL.
JarIndeliai rinkmenų rinkinį.
„Java“Vykdo (Ant) VM vykdo „Java“ klasę arba, jei nurodyta, šakoja kitą VM.
JavacasSudaro šaltinio medį veikiančiame (Ant) VM.
„Javadoc“ / „Javadoc2“Generuoja kodo dokumentaciją naudodamas javadoc įrankį.
MkdirSudaro katalogą.
NuosavybėProjekte nustato ypatybę (pagal pavadinimą ir vertę) arba ypatybes (iš failo ar šaltinio).
RmicVykdo tam tikros klasės rmic kompiliatorių.
„Tstamp“Nustato dabartinio projekto ypatybes DSTAMP, TSTAMP ir TODAY.
StiliusApdoroja dokumentų rinkinį per XSLT.

Nors programinės įrangos kūrimui yra prieinami kiti įrankiai, „Ant“ lengva naudoti ir jį galima įsisavinti per kelias minutes. Be to, „Ant“ leidžia jums išplėsti funkcionalumą praplečiant kai kurias savo klases. Parodysiu šią plėtrą kitu pavyzdžiu.

Ko man reikia naudoti skruzdėlei?

Norėdami paleisti „Ant“, savo kompiuteryje turite įdiegti tris komponentus: JDK, XML analizatorių ir „Ant“ (nuorodas žr. Šaltiniuose).

Daugeliu atvejų XML analizatorius yra lib failų, platinamų kartu su „Servlet“ bėgikliu arba žiniatinklio serveriu, dalis. Jei ne, pakanka nemokamo XML analizatoriaus iš java.sun.com.

Skruzdėlių diegimas susideda iš failų atsisiuntimo, klasių bibliotekų pridėjimo prie klasės kelio ir skruzdžių dvejetainių failų įtraukimo į kelią.

Scenarijaus pavyzdys

Šis scenarijaus pavyzdys turėtų padėti parodyti skruzdžių vertę ir pateikti įžvalgų apie jos pranašumus ir kaip ją naudoti.

Kadangi didelė dalis dabartinės „Java“ plėtros yra orientuota į serverio „Java“, pavyzdžiui pasirinkau serverio programą. Kūrėjai, dirbantys serveryje esančiose „Java“ programose, paprastai domisi servletų kompiliavimu, JSP failų ir HTML failų, konfigūracijos failų ar vaizdų diegimu.

Bendra šio komponavimo schema apimtų mažų scenarijų kūrimą konkrečioms platformoms skirtomis kalbomis, pagrįstomis serverio operacine sistema. Pvz., NT kompiuteryje dirbantis kūrėjas galėtų sukurti paketinį failą, kuris atliktų kompiliavimo užduotis ir tada vykdytų diegimą. Tačiau, jei gamybos aplinkoje būtų „Unix“ arba „Linux“, kūrėjas turėtų perrašyti scenarijų, užtikrindamas, kad scenarijai būtų sinchronizuoti.

Gerai, parodyk man, kaip tai veikia

Taigi, tikiuosi, įsitikinau, kad reikia naudoti „Ant“, ir parodžiau, kaip paprasta įdiegti. Dabar aš jums parodysiu, kaip paprasta naudoti „Ant“, pateikdama pavyzdį, kuris atlieka paprastą kompiliavimą ir diegimą.

Paprastas kūrimo procesas naudojant „Ant“ (simple.xml)

Aukščiau pateiktame pavyzdyje galima daug ką paaiškinti. Pirmiausia turėtumėte suprasti failo simple.xml struktūrą. Tai gerai suformatuotas XML failas, kuriame yra projekto objektas, kurį sudaro keli tiksliniai objektai.

Pirmoje eilutėje pateikiama informacija apie visą numatomą projektą.

Svarbiausi projekto eilutės elementai yra numatytas ir pagrįstas.

numatytas atributas nurodo numatytąjį tikslą, kurį reikia vykdyti. Kadangi „Ant“ yra komandų eilutės kūrimo įrankis, galima atlikti tik „Ant“ failo tikslinių veiksmų pogrupį. Pavyzdžiui, galėčiau atlikti šią komandą:

% ant -buildfile simple.xml init 

Tai įvykdys skruzdė komandą ir paleiskite failą simple.xml, kol inic tikslas pasiektas. Taigi šiame pavyzdyje numatytasis nustatymas yra dislokuoti. Skruzdžių procesas, iškviestas šioje eilutėje, bus vykdomas per paprastas.xml failą iki dislokuoti komanda pasiekta:

% ant -buildfile simple.xml 

pagrįstas atributas yra savaime suprantamas, nes tai yra pagrindinis katalogas, iš kurio gaunamos reliatyvios nuorodos, esančios komponavimo faile. Kiekvienas projektas gali turėti tik vieną pagrįstas atributą, kad galėtumėte pasirinkti įtraukti visiškai kvalifikuotą katalogo vietą arba suskaidyti didelį projekto failą į mažesnius projekto failus su skirtingais pagrįstas atributus.

Kita dominanti eilutė yra tikslinė linija. Čia parodytos dvi skirtingos versijos:

taikinys elemente yra keturi atributai: vardas, jei, nebentir priklauso. Skruzdė reikalauja vardas atributas, tačiau kiti trys atributai yra neprivalomi.

Naudojant priklauso, galite sukrauti skruzdėlių užduotis taip, kad priklausoma užduotis nebūtų inicijuojama, kol nebus baigta užduotis, nuo kurios ji priklauso. Ankstesniame pavyzdyje švari užduotis nebus pradėta, kol inic užduotis įvykdyta. priklauso atribute taip pat gali būti kableliais atskirtų reikšmių sąrašas, nurodantis kelias užduotis, nuo kurių priklauso aptariama užduotis.

jei ir nebent komandos leidžia nurodyti komandas, kurios taip pat turi būti vykdomos jei nustatoma tam tikra savybė arba nebent tas turtas yra nustatytas. jei bus vykdoma, kai bus nustatyta turto vertė ir nebent bus vykdoma, jei reikšmė nenustatyta. Galite naudoti prieinama komandą, norėdami nustatyti tas ypatybes, kaip parodyta kitame pavyzdyje, arba galite jas nustatyti naudodami komandinę eilutę.

inic taikinyje iš paprasto pavyzdžio yra keturios eilutės nuosavybė komandos, kaip parodyta čia:

Šie nuosavybė eilutėse galite nurodyti dažniausiai naudojamus katalogus ar failus. Nuosavybė yra paprasta pavadinimo reikšmės pora, leidžianti nurodyti katalogą ar failą kaip loginį, o ne fizinį.

Jei norėtumėte remtis sourceDir kintamąjį vėliau „Ant“ faile, galite tiesiog naudoti šią sintaksę, kad įspėtumėte „Ant“, kad gautumėte šios žymos vertę: $ {sourceDir}.

Dvi kitos komandos, esančios aukščiau esančiame kaupimo faile, yra:

Šios komandos naudojamos norint užtikrinti, kad outputDir (arba klasės katalogą, kai daroma išvada, kaip minėta aukščiau). Pirmoji komanda pašalina visą medį, esantį po outputDir. Antroji komanda vėl sukuria katalogą.

Paskutinė svarbiausia kūrėją dominanti eilutė yra ši kompiliavimo eilutė:

javac komandai reikalingas šaltinio katalogas (.java failų įvesties vieta) ir paskirties katalogas (.classes failo išvesties vieta). Svarbu pažymėti, kad visi katalogai turi egzistuoti prieš paleidžiant skruzdė komandą arba sukurti naudojant mkdir komandą. Skruzdė nekuria katalogų, pagrįstų intuicija, todėl jūs turite sukurti outputDir, naudojant mkdir komandą prieš aukščiau pateiktą kompiliavimo veiksmą.

Po to, kai sudaryti užduotis įvykdyta dislokuoti užduotis atliks kopijavimo operaciją, kad visi JSP failai būtų perkelti iš šaltinio katalogo į diegimo katalogą. Naudojant kopidiras komandą, nukopijuosite visą JSP katalogą iš vienos vietos į kitą. Aš naudojau copyfile komanda nukopijuoti vieną ypatybių failą kaip kūrimo dalį.

Nors paaiškinti pavyzdį reikėjo kelių eilučių, turėtų būti akivaizdu, kad „Ant“ yra lengvai naudojamas įrankis. Naudodami šią sukūrimo failą kaip atspirties tašką, turėtumėte sugebėti įtraukti „Ant“ į savo kūrimo pastangas. skruzdė Aukščiau pateiktame pavyzdyje parodytos komandos turi papildomų funkcijų, kai kurios iš jų bus aptartos šiame straipsnyje, likusi dalis paliekama jums kartu su nuorodomis į dokumentaciją.

Svarbios užduotys

Jums paliekama perskaityti integruotas užduotis, įtrauktas į skruzdžių platinimą. Informacijos apie kiekvieną komandą ieškokite išteklių vadove, esančiame Ištekliai. Aš pasirinkau dvi dažniausiai naudojamas komandas kaip papildomų parinkčių, kurias prieina kūrimo tvarkyklė, be pritaikymo pavyzdžius.

Renkamas kodas (įskaitant EJB)

Anksčiau aptartame paprastame pavyzdyje pamatėte paprastą javac komandą. Dabar, išsamiau išnagrinėję, pamatysite, kad galite nurodyti kompiliavimo žymas, tokias kaip nusidėvėjimas, derinimas ar optimizavimas, taip pat failus, kurie bus ar nebus įtraukti į kompiliaciją.

Galite naudoti įtraukti / neįtraukti subjektai ES viduje javac užduotis įtraukti / išskirti failus, atitinkančius modelį vardas atributas iš kompiliacijos. Iš aukščiau pateikto pavyzdžio norite įtraukti failus, esančius bet kuriame kataloge, kurio pabaiga yra .java, tačiau tuo pačiu metu norite išskirti failus, pavadintus Script.java, nebent ypatybė bsf.teikti yra nustatyta tiesa.

Jūs nustatote bsf.teikti ypatybė naudojant šią užduotį, kuri ieško klasės kelio nurodyto ir nustatyto klasės pavadinimo bsf.teikti pagal paieškos rezultatus:

javac komandoje nebus failų, vadinamų version.txt iš kompiliacijos, remiantis aukščiau esančia komanda „išskirti“.

Generuoja javadoc

Kita užduotis, kurią Skruzdė gali padėti automatizuoti, yra javadoko generavimas. Norėdami sukurti „javadoc“, galite naudoti šią komandą:

Paketuose nurodomi visi paketai, kuriuos javadokas įtrauks. šaltinis priskirti taškus link šaltinio failų vietos. javadokas komanda taip pat pateikia atributus, leidžiančius nurodyti lango ir dokumento pavadinimą. Taip pat galite įtraukti pranešimą apie autorių teises kiekvieno „javadoc“ puslapio apačioje naudodami dugnas atributas.

Ar skruzdėlė gali daryti XYZ?

Šiuo metu jūs matėte keletą galimų užduočių savo kūrimo procese, kurias „Ant“ gali automatizuoti. Tos užduotys yra įtrauktos iš dėžutės Ant. Galbūt norėsite pritaikyti „Ant“, kad padėtumėte atlikti sunkesnes užduotis, pvz., Kurti EJB ir atlikti nuotolinį konfigūracijos valdymą. Kai kurie iš jūsų gali norėti padidinti „Ant“ ataskaitų teikimo galimybes arba sukurti vartotojo sąsają, kuri galėtų vykdyti „Ant“ procesą.

Paprastas atsakymas į klausimą "Ar skruzdė gali padaryti XYZ?" yra "Taip, bet jums gali tekti jį pritaikyti".

Išplėtęs skruzdę

Šiuo metu įdomu aptarti du skruzdėlių pratęsimus. Tai padidėjęs ataskaitų teikimas ir galimybė platinti kodą nuotoliniu būdu naudojant „Ant“.

Ataskaitų teikimo patobulinimai