Apache Ant - Apache Ant

Apache Ant
Apache-Ant-logo.svg
Түпнұсқа автор (лар)Джеймс Данкан Дэвидсон
ӘзірлеушілерApache Software Foundation
Бастапқы шығарылым19 шілде 2000 ж; 20 жыл бұрын (2000-07-19)
Тұрақты шығарылым
1.10.9 / 2020 ж. 30 қыркүйегі; 57 күн бұрын (2020-09-30)[1]
РепозиторийAnt репозиторийі
ЖазылғанJava
ПлатформаJava SE
ТүріҚұрал құралы
ЛицензияApache лицензиясы 2.0
Веб-сайтқұмырсқа.apache.org Мұны Wikidata-да өңде

Apache Ant арналған бағдарламалық құрал болып табылады бағдарламалық жасақтаманы автоматтандыру бастап пайда болған процестер Apache Tomcat орнына 2000 жылы жоба Жасаңыз Unix құралы. Ол Make-ге ұқсас, бірақ көмегімен жүзеге асырылады Java тіл және Java платформасын қажет етеді. Пайдаланатын Make-ден айырмашылығы Makefile форматы, Ant қолданады XML код құру процесі мен оның тәуелділіктерін сипаттау.

Астында босатылды Apache лицензиясы бойынша Apache Software Foundation, Құмырсқа - бұл ашық бастапқы жоба.

Тарих

Құмырсқа («Басқа ұқыпты құрал»)[2] арқылы ойластырылған Джеймс Данкан Дэвидсон дайындық кезінде Sun Microsystems Келіңіздер анықтама JSP және Сервлет қозғалтқыш, кейінірек Apache Tomcat, ретінде шығару үшін ашық көзі. A меншіктік оны жасау үшін Make нұсқасы қолданылды Solaris платформа, бірақ ашық көздер әлемінде Tomcat-ті құру үшін қандай платформаны қолданғанын бақылау мүмкіндігі болмады; сондықтан Ant «Tomcat» -ті XML «құрастыру файлындағы» директивалардан құруға арналған қарапайым платформадан тәуелсіз құрал ретінде құрылды. Құмырсқа (1.1 нұсқасы) 2000 жылдың 19 шілдесінде дербес өнім ретінде ресми түрде шығарылды.

Ant 2 нұсқасына бірнеше ұсыныстар жасалды, мысалы Джеймс Данкан Дэвидсонның AntEaterі, Питер Дональдтың Мирмидоны және Конор Макнейлдің Мутанты, олардың ешқайсысы әзірлеушілер қауымдастығымен үлкен қабылдау таба алмады.[3]

Кезінде (2002) Ant көптеген Java даму жобаларында қолданылатын құрал болды.[4] Мысалы, Java-ның көптеген ашық бастапқы кодтары бар build.xml оларды таратумен бірге файлдар.[дәйексөз қажет ] Құмырсқаны интеграциялау өте маңызды емес болғандықтан JUnit Ant құрастыру үрдісімен сынақ жүргізуге дайын әзірлеушілерге қабылдауды жеңілдетті тестке негізделген даму, тіпті экстремалды бағдарламалау.

Кеңейтімдер

WOProject-Ant[5] Ant үшін жазылған кеңейтудің көптеген мысалдарының бірі. Бұл кеңейтімдер оларды көшіру арқылы орнатылады .jar құмырсқаларға файлдар lib анықтамалық. Бұл орындалғаннан кейін, бұл тапсырма кеңейтімдерін тікелей типтегі шақыруға болады build.xml файл. WOProject кеңейтімдері мүмкіндік береді WebObjects әзірлеушілер құмырсқаларды қолданудың орнына олардың жақтаулары мен қосымшаларын құруда қолданады Apple's Xcode люкс.

Antcontrib[6] басқа пайдалы тапсырмалар сияқты шартты мәлімдемелер мен операциялар сияқты тапсырмалар жиынтығын ұсынады.[7]

Ant-contrib.unkrig.de[8] желіге арналған міндеттер мен түрлерді жүзеге асырады, Әткеншек пайдаланушы интерфейстері, JSON өңдеу және басқалары.

Басқа тапсырма кеңейтімдері үшін бар Перфорс, .NET Framework, EJB, және файлдық жүйемен манипуляциялар.[9]

Мысал

Төменде үлгі келтірілген build.xml қарапайым Java «Hello, world» қосымшасына арналған файл. Ол төрт мақсатты анықтайды - таза, clobber, жинақтау және құмыра , олардың әрқайсысы байланысты сипаттамаға ие. The құмыра мақсатты тізімдер жинақтау тәуелділік ретінде мақсат. Бұл Антқа басталмас бұрын екенін айтады құмыра ол алдымен аяқталуы керек жинақтау мақсат.

<?xml version="1.0"?><жоба аты =«Сәлеметсіз бе» әдепкі =«жинақтау»>    <мақсатты аты =«таза» сипаттама =«аралық файлдарды жою»>        <жою dir =«сыныптар»/>    </target>    <мақсатты аты =«clobber» тәуелді =«таза» сипаттама =«барлық артефакт файлдарын жою»>        <жою файл =«сәлем.jar»/>    </target>    <мақсатты аты =«жинақтау» сипаттама =«Java бастапқы кодын сынып файлдарына жинақтау»>         dir =«сыныптар»/>         srcdir ="." destdir =«сыныптар»/>    </target>    <мақсатты аты =«құмыра» тәуелді =«жинақтау» сипаттама =«қосымшаға Jar файлын жасау»>         destfile =«сәлем.jar»>            <файлдар жиынтығы dir =«сыныптар» қамтиды =«** / *. сынып»/>            <manifest>                <атрибут аты =«Негізгі сынып» мәні =«HelloProgram»/>            </manifest>        </jar>    </target></project>

Әр мақсаттың ішінде Ant осы мақсатты құру үшін қабылдауы керек әрекеттер бар; бұлар кіріктірілген тапсырмаларды қолдану арқылы орындалады. Мысалы, жинақтау мақсатты Ant алдымен деп аталатын каталог құруы керек сыныптар (Ant ол бұрын болмаған жағдайда ғана жасайды), содан кейін Java компиляторын шақырады. Сондықтан қолданылатын міндеттер mkdir және javac. Олар аттас командалық жолдың утилиталарына ұқсас тапсырманы орындайды.

Осы мысалда қолданылған тағы бір тапсырма аталған құмыра:

 destfile =«сәлем.jar»>

Бұл Ant тапсырмасы Java-дің жалпы командалық жолының атымен бірдей, JAR, бірақ бұл шынымен Ant бағдарламасының кіріктірілген JAR / ZIP файлдық қолдауына шақыру. Бұл деталь өздері сұраған файлдармен ғана қалаған JAR алатын соңғы пайдаланушылардың көпшілігіне қатысы жоқ.

Көптеген Ant тапсырмалары өз жұмысын жергілікті бағдарламаларға немесе Java-ға тапсырады. Олар Құмырсқаның өздерін қолданады <exec> және <java> командалық жолдарды орнатуға және құрастыру файлындағы ақпараттардан бағдарламаның аргументтеріне дейін және қайтарылатын мәнді интерпретациялаудың барлық егжей-тегжейін өңдеуге арналған тапсырмалар. Пайдаланушылар мұны қандай тапсырмалардың орындалатынын көре алады (мысалы: <csv>, <signjar>, <chmod>, <rpm>), жүйеде тапсырманы жолдағы негізгі бағдарламасыз немесе толық Java Development Kit (JDK) орнатусыз орындауға тырысу арқылы.

Тасымалдау

Құмырсқаның негізгі мақсаттарының бірі Make-ден гөрі портативті болу еді. Make-де мақсатты құру үшін қажетті әрекеттер платформаға тән ретінде көрсетіледі қабық командалар, ал Ant барлық платформаларда бірдей әрекет етуге арналған көптеген функционалды функцияларды ұсынады. Мысалы, үлгіде build.xml жоғарыдағы файл таза мақсат жояды сыныптар каталог және ондағы барлық нәрсе. Makefile-де бұны келесі команда орындау керек:

rm -rf сыныптары /

rm Бұл Unix -белгілі бір команда кейбір басқа ортада қол жетімді емес. Microsoft Windows, мысалы:

rmdir / S / Q сыныптары

Ant құрастыру файлында дәл сол мақсат кірістірілген команда көмегімен орындалады:

 <жою dir =«сыныптар»/>

Сонымен қатар, Ant каталогтар үшін көлбеу немесе кері көлбеу сызықты және жол бөлгіштер үшін нүктелі үтірді немесе қос нүктені ажыратпайды. Ол әрқайсысын өзі орындайтын платформаға сәйкес таңбаға айналдырады.

Шектеулер

  • Ант-та жазылған файлдарды құрастыру XML, күрделі және мағыналы болуы мүмкін, өйткені олар иерархиялық, ішінара реттелген және кеңінен өзара байланысты. Бұл күрделілік оқуға кедергі болуы мүмкін. Ірі немесе күрделі жобалардың файлдары басқарылмайтын көлемге ұласуы мүмкін. Құрастыру файлдарының жақсы дизайны мен модульизациясы оқылымды жақсартады, бірақ оның өлшемін кішірейтпейді. Сияқты басқа құрылыс құралдары Гред немесе Maven, жалпылық пен икемділік есебінен неғұрлым қысқа сценарийлерді қолданыңыз.
  • Көптеген ескі тапсырмалар - күнделікті қолданылатын негізгі міндеттер, мысалы <javac>, <exec> және <java>- тапсырмалардың соңғы нұсқаларына сәйкес келмейтін опциялар үшін әдепкі мәндерді қолдану. Бұл әдепкі параметрлерді өзгерту Ant сценарийлерін бұзады.
  • Жол немесе мәтін элементіндегі қасиеттерді кеңейту кезінде анықталмаған қасиеттер қате ретінде көтерілмейді, бірақ кеңейтілген сілтеме ретінде қалдырылады (мысалы. $ {unassigned.property}).
  • Құмырсқада ақауларды өңдеу ережелері шектеулі.
  • Жалқау мүлікті бағалау қолдау көрсетілмейді. Мысалы, Antcontrib ішінде жұмыс істегенде <for> цикл, сипатты қайталама бөлігі болуы мүмкін ішкі мән үшін қайта бағалау мүмкін емес. (Кейбір үшінші тарап кеңейтімдері уақытша шешімді жеңілдетеді; AntXtras ағынды басқару тапсырмалары жиынтықта курсорды қайта анықтауға мүмкіндік береді.)
  • Веб-файлдарда бір файл түрін басқасынан құрудың кез-келген ережесін макияж ішіне кірістіріп жазуға болады. Мысалы, біреу басқа құралды орындау ережелерін қолдану арқылы құжатты басқа форматқа өзгерте алады. Ant-да ұқсас тапсырманы құру анағұрлым күрделі: бірдей тапсырманы орындау үшін Java-да бөлек тапсырма жазылып, Ant құрастыру файлына қосылуы керек. Алайда, бұл бөлу Ant платформасында тапсырманың орындалуының кейбір бөлшектерін жасыру арқылы Ant сценарийінің оқылуын арттыра алады.

Үшінші тарап Ant кеңейтімдері бар (деп аталады) қарсыластар) жетіспейтін функционалдылықтың көп бөлігін қамтамасыз етеді. Сонымен қатар Тұтылу интеграцияланған даму ортасы (IDE) Ant сценарийлерін құра алады және орындай алады, ал NetBeans IDE ішкі құрастыру жүйесі үшін Ant қолданады. Бұл екі IDE платформасы өте танымал болғандықтан, Ant қолдануын айтарлықтай жеңілдетеді. (Бонус ретінде NetBeans құрған Ant сценарийлері сол IDE-ден тыс сценарий ретінде қолданыла алады.)

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Apache Ant жобасының жаңалықтары». Алынған 5 қыркүйек 2019.
  2. ^ «Сіз оны неге құмырсқа деп атайсыз? - Apache Ant».
  3. ^ МакНил, Конор. «Құмырсқалардың алғашқы даму тарихы».
  4. ^ Уили (2002). EXtreme бағдарламалауға арналған Java құралдары. б. 76.
  5. ^ «WOProject-Ant - WOProject / WOLips - келісу». Архивтелген түпнұсқа 2009-01-08.
  6. ^ «Ant-Contrib».
  7. ^ «Ant-Contrib тапсырмалары».
  8. ^ «ant-contrib.unkrig.de».
  9. ^ «Құмырсқа тапсырмаларына шолу».

Әрі қарай оқу

Сыртқы сілтемелер