JavaRush /Java Blog /Random-TL /Pagsisimula sa Maven Alfresco SDK part 1
CynepHy6
Antas
Великий Новгород

Pagsisimula sa Maven Alfresco SDK part 1

Nai-publish sa grupo

Pagsisimula sa Alfresco Maven SDK

Jeff Potts, Enero, 2014 bahagi 2 =>
  • Panimula
  • Pangunahing Konsepto
  • Apache Maven
  • Alfresco Modular Packages(AMP)
  • Alfresco Maven SDK
  • Ano ang masasabi mo tungkol sa lumang Ant-based SDK?
  • Ang iyong unang proyekto
  • Ilunsad natin ito
  • Ano ito?
  • Iba pang mga build command
  • Pagtotroso

Panimula

Ginawa ang tutorial na ito para sa mga taong kailangang, sa ilang paraan, i-configure ang Alfresco sa isang proyekto. At kaya sa una ay iniisip mo, "Ano ito?!" Ngunit sa huli ay matututo ka:

  • Paano lumikha ng isang proyekto ng Alfresco mula sa simula gamit ang Alfresco Maven SDK
  • Ano ang dapat mangyari depende sa iyong mga setting
  • Paano lumikha at magpatakbo ng isang pagsubok
  • Paano gumawa ng artifact na angkop para sa pag-embed o pagbabahagi sa komunidad

Dapat ituring na panimulang punto ang tutorial na ito bago ka magpatuloy sa mas detalyadong pag-aaral tungkol sa mga bagay tulad ng pagmomodelo ng nilalaman, pag-customize ng mga aksyon at pag-uugali, karagdagang mga daloy ng trabaho, o mga web script.

Bago tayo magsimula, isang maikling digression: Mayroong halos palaging maraming mga alternatibong landas sa isang solusyon. Sa tutorial na ito ay dadalhin kita sa pinakasimple at direktang paraan, isang ligtas na ruta na tutulong sa iyo na malaman ito nang mas mabilis. Mamaya maaari mong baguhin ang ilang mga bagay o galugarin ang iba pang mga ruta kung gusto mo.

Pangunahing konsepto.

Hindi mo kailangang malaman ang tungkol sa Maven, Alfresco, o kung bakit kailangan ang SDK na ito bago mo simulan ang paggamit nito, ngunit makakatulong ang ilang kaalaman sa ilang paraan, kaya hayaan mo akong mabilis na ituro sa iyo ang mga pangunahing konsepto.

Apache Maven

Ang Apache Maven ay isang tool sa pamamahala ng build. Mayroon itong maraming mga tampok, ngunit ang pangunahing isa ay nakakatipid ito ng oras sa pag-alam kung aling mga dependency (at mga dependency ng mga dependency) ang umaasa sa iyong proyekto. Maaaring kunin at i-cache ng Maven ang mga dependency na ito para sa iyo. Kung nagugol ka na ng oras sa pagsubok na alamin kung aling JAR file ang susunod sa kung aling JAR file, kung gayon ang pagiging kapaki-pakinabang ng naturang tool ay halata.

Alfresco Modular Packages(AMP)

Ang AMP ay isang ZIP file na may istraktura ng direktoryo na sumusunod sa ilang partikular na convention. Ginagamit ang mga AMP file para madaling magbahagi at mag-deploy ng mga setting sa Alfresco platform. Kung kailangan ng iyong proyekto na gumawa ng mga custom na setting sa antas ng repo (web app/alfresco) pagkatapos ay gagawa ka ng AMP na "repo". Kung kailangan ng iyong proyekto na gumawa ng mga setting sa antas ng Ibahagi (web app /share) gagawa ka ng "share" na AMP. Karaniwang karaniwan para sa isang proyekto na kapag kinakailangan ang mga pagbabago sa parehong antas, gagawa ka ng dalawang AMP.

Alfresco Maven SDK

Ang mga programmer ngayon ay sanay na sa makapangyarihang mga balangkas kung saan ang isang walang laman na direktoryo ay ganap na napupuno ng mga file sa isang minuto at sa susunod na sandali ay handa nang ilunsad ang iyong proyekto. Bakit dapat tumira ang mga developer ng Alfresco sa mas mura?

Ang layunin ng SDK na nakabase sa Maven ay lumikha ng pinakasimpleng posibleng kundisyon para sa pagsisimula ng pagbuo para sa Alfresco. Ang SDK ay binubuo ng isang template ng proyekto (isang "archetype" sa terminolohiya ng Maven) at ilang built-in na feature na nagsasabi kay Maven kung paano gumawa ng mga AMP at i-deploy ang mga ito sa Alfresco.

Kung isusulat mo ang iyong sariling aplikasyon nang hiwalay mula sa Alfresco at Share WARs, hindi mo kailangan ang Alfresco Maven SDK. Ngunit kung magsusulat ka ng code na tumatakbo sa alinman sa mga web application na ito, ang Alfresco Maven SDK ang lugar na magsisimula.

Paano ang lumang Ant-based SDK?

Ibinigay ng Alfresco ang nada-download na SDK na ito mula pa noong una. Naglalaman ang SDK ng ZIP container na may mga kinakailangang dependency para sa compilation, source code, dokumentasyon, at mga halimbawang proyekto ng Eclipse. Ang mga halimbawang ito ay gumamit ng isang Ant-based na tagabuo.

Walang mali sa diskarteng ito, ngunit umunlad ang mga platform ng pag-unlad, at ang mga SDK ng Ant ay nabigong umunlad kasama ng mga ito. Sa ngayon, ang mga bahagi ng mga halimbawang ito ay luma na (halimbawa, mga native na Web services API, o ang Alfresco Explorer user interface) at walang sapat na mga halimbawa para sa mga napakahalagang bahagi gaya ng CMIS, Web script, at mga advanced na daloy ng trabaho gamit ang Activiti.

Bilang karagdagan sa mga lumang halimbawa nito, kinakailangan ang lumang Ant SDK. Masyadong maraming trabaho ang ginagawa ng mga developer. Sa Alfresco Maven SDK, hindi mo na kailangang mag-download ng kahit ano - gagawa ka lang ng iyong proyekto at magsimulang mag-coding.

Mayroon ka na ngayong mataas na antas ng pag-unawa sa Apache Maven, AMP, at ang Alfresco Maven SDK. Panahon na upang makita ang lahat ng ito sa pagkilos

Ang Iyong Unang Proyekto

Hayaang ipakita ko sa iyo kung gaano kadaling simulan ang pagbuo para sa Alfresco gamit ang Alfresco Maven SDK. Bago tayo magsimula, dapat kong ipaalala sa iyo na naka-install ang JDK 1.7, gayundin ang naka-install na Apache Maven 3. Hindi mo na kailangang mag-download ng anupaman. Seryoso. Kahit Alfresco.

  1. Lumikha ng walang laman na direktoryo. Gagawa kami ng ilang karagdagang mga direktoryo dito sa lalong madaling panahon.
  2. Ngayon, gumawa tayo ng walang laman na proyekto. Sabihin nating gusto mong lumikha ng isang bagay na iyong i-deploy sa Alfresco repository, halimbawa isang custom na modelo ng nilalaman, ilang mga custom na pagkilos ng panuntunan, isang bagong hanay ng mga web script, o ilang proseso ng negosyo ng Activiti. Hindi naman talaga mahalaga. Upang lumikha ng isang bagong proyekto, patakbuhin ang command:
    mvn archetype:generate\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Gagawa si Maven ng ilang trabaho at sa huli ay hihilingin sa iyo na piliin ang "archetype". Ang iyong pangunahing pagpili mula sa mga library ng template ng proyekto. Mayroong dalawang magagamit dito. Ang isa ay tinatawag na "alfresco-amp-archetype" at ang isa ay "alfresco-allinone-archetype". Ang aming layunin ay lumikha ng isang AMP na maaaring i-deploy sa Alfresco, kaya ang unang punto ay kung ano ang kailangan namin. I-type ang 1 at pindutin ang Enter.
  4. Humihingi na ngayon si Maven sa iyo ng isang partikular na bersyon ng template na pagbabasehan mo ng iyong proyekto. Sa kasalukuyan, ang pinakabagong bersyon ay 1.1.1 na siyang ikalimang opsyon sa listahan kaya pindutin ang 5 at Enter.
  5. Nagtatanong si Maven tungkol sa groupId. Ito ay katulad ng "Java package". Ang aking mga halimbawa ay palaging batay sa katotohanan na nagtatrabaho ako sa isang gawa-gawang kumpanya na tinatawag na SomeCo, kaya ilalagay ko ang "com.someco" dito. Mag-type ng bagay na may katuturan sa iyo at pindutin ang Enter.
  6. Susunod ay ang artifactId. Isipin ito bilang pangalan ng iyong proyekto. Ito rin ang magiging AMP ID mo kaya pumili ng espesyal. Dapat mo ring idagdag ang linyang "-repo" sa iyong artifactId dahil ang module na ito ay itatayo sa repositoryo. Pangalanan ko ang aking "someco-mvn-tutorial-repo" at pindutin ang Enter.

  7. Sa puntong ito, ipapakita sa iyo ni Maven ang mga value na iyong ipinasok, magdagdag ng ilang iba pang mga default, at hihilingin sa iyong kumpirmahin ang iyong pinili. Kung gusto mong baguhin ang anuman, maaari mong piliin ang "N" at pagkatapos ay gumawa ng mga pagbabago o "Y" upang magpatuloy. Maaari mong palaging baguhin ang mga halagang ito sa ibang pagkakataon kung kinakailangan. Pindutin ang "Y" at pagkatapos ay Enter.

May gagawin na ngayon si Maven. Kapag natapos na, makukuha mo ang sumusunod:

  • Isang proyekto na nakabalangkas upang suportahan ang iyong pag-unlad sa Alfresco
  • Default na configuration file
  • Minimal na Java code para sa mga karagdagang unit test para masuri kung gumagana ang lahat
  • Kinakailangan ang configuration upang patakbuhin ang lokal na Alfresco instance na kinakailangan para sa pagsubok
  • Default na POM (Project Object Model) XML file na nagsasabi kay Maven kung anong mga dependency ang mayroon ang iyong proyekto

Patakbuhin natin ito

Wala ka pang na-upload. Wala ka pang na-edit. Ang ginawa mo lang ay sabihin kay Maven na lumikha ng isang proyekto batay sa template, ngunit mayroon akong magandang balita: ang iyong proyekto ay handa nang tumakbo ngayon.

Subukan mo ito:

cd someco-mvn-tutorial-repo
mvn integration-test -Pamp-to-war

Kung titingnan mo ang output, makikita mong dina-download ni Maven ang lahat ng kailangan para i-compile ang proyekto, gawin ang AMP, i-deploy ang AMP sa Alfresco WAR, i-deploy ang Alfresco WAR sa naka-embed na Tomcat server, at patakbuhin ito. Sa kalaunan ay makakakita ka ng katulad ng:

2014-01-15 18:01:19,339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Nakahanap ng 1 (mga) module.
2014-01-15 18:01:19,480 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Pag-install ng module na 'someco-mvn-tutorial-repo' na bersyon 1.0.1401151758.

Na nangangahulugan na ang iyong mga module ng proyekto ay nabuo at nakilala ng Alfresco server.

Pagkatapos mong makita:

Ene 16, 2014 8:38:20 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"]

Dapat mong buksan ang:

http://localhost:8080/alfresco

At mag-log in gamit ang "admin" at "admin".

Kapag tapos ka nang humanga dito, bumalik sa window kung saan mo pinatakbo ang iyong Maven command at pindutin ang ctrl-c para i-shut down ang server.

Kung nakakakuha ka ng out-of-memory error kapag nagpapatakbo ng integration test, maaaring kailanganin mong maglagay ng ilang parameter ng JVM para sa mga opsyon sa memory sa Maven. Ang isang posibleng solusyon ay itakda ang MAVEN_OPTS environment variable. Halimbawa, itinakda ko ang aking mga halaga sa:

-Xmx1024M -XX:MaxPermSize=512m

Gamitin ang MAVEN_OPTS upang itakda ito nang sapat upang hindi mo makita ang mga error sa overflow ng memory.

Ano ito?

Hiniling mo kay Maven na magpatakbo ng "integration-test" upang magamit ang profile na "amp-to-war". Ito ay humantong sa pagbuo ng proyekto, pag-deploy nito bilang AMP sa isang bagong Alfresco WAR, at pagpapatakbo ng naka-embed na Tomcat server. Pagkatapos noon, nagawa mong mag-log in sa lumang kliyente ng Alfresco Explorer at magtrabaho kasama ang repositoryo, sinusubukan ang iyong module.

Kung titingnan mo ang target na direktoryo, makikita mo ang AMP na ginawa at pagkatapos ay na-deploy sa Alfresco WAR. Sa aking kaso ito ay tinatawag na "someco-mvn-tutorial-repo.amp". Ang file na ito ang dapat mong ibigay sa iyong IT team kung handa ka nang ilapat ang iyong mga pagbabago sa antas ng repositoryo sa live na server ng Alfresco.

Iba pang Mga Build Command

Maaaring hindi mo palaging kailangang simulan ang Alfresco server at hayaan itong tumatakbo. Kung gusto mo lang buuin ang proyekto, magpatakbo ng unit test, at package AMP, magagawa mo:

mvn package

Kung gusto mong mag-install ng AMP sa loob ng iyong lokal na repositoryo ng Maven, patakbuhin ang:

mvn install

Maaaring napansin mo na ang proyekto ay may kasamang simpleng unit test bilang default. Bilang default, awtomatikong tatakbo ang Maven ng mga unit test sa iyong proyekto. Makikita mo ito sa output ng console:

------------------------------------------------- -----
 MGA PAGSUSULIT
------------------------------------------------- -----
Tumatakbo sa org.alfresco.demoamp.test.DemoComponentTest

Isang magandang kasanayan upang matiyak na ang iyong proyekto ay palaging may kasamang mga pagsubok sa yunit at pinapatakbo ang mga ito sa tuwing gagawa ka. Maraming organisasyon ang gumagamit ng mga tool ng CI (Continuous Integration) na nakadepende sa mga pagsubok na ito. Kung sa ilang kadahilanan ay ayaw mong magpatakbo ng pagsubok, maaari mong laktawan ito, tulad nito:

mvn install -DskipTests=true

Kung gusto mong tanggalin ang lahat ng pinagsama-samang bagay na nilikha ni Maven at magsimulang muli, maaari mong patakbuhin ang:

malinis ang mvn

Kung gusto mo ring tanggalin ang built-in na database, naka-save na nilalaman ng Alfresco, mga index, at mga log na palaging ginagawa kapag nagpapatakbo ng pagsubok sa server, maaari mong patakbuhin ang:

mvn malinis -Purge

Ngayon alam mo na kung paano lumikha ng isang bagong proyekto sa Alfresco gamit ang isang template at magkaroon ng mga pangunahing kaalaman sa pagbuo ng may o walang mga pagsubok. Ang susunod na hakbang ay upang matutunan kung paano magtrabaho kasama ang iyong proyekto sa IDE.

Pagtotroso

Ang log4j.properties file ay matatagpuan sa modules directory, kasama sa log4j.properties file ang

log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level}

Malamang na gusto mong palitan ito ng sarili mong mga setting na nababagay sa istraktura ng iyong package.

Upang i-configure ang module.log.level magagawa mo ito kapag sinimulan mo ang Maven, tulad nito:

mvn install -Dmodule.log.level=DEBUG

O maaari mong i-edit ang pom.xml at idagdag ito sa mga katangian, tulad nito:

<module.log.level>DEBUG</module.log.level>

Kung babaguhin mo ang pom.xml, matatanggap ng AMP ang mga setting na ito kapag ginawa, at pagkatapos, ang WAR kung saan naka-deploy ang AMP ay magsusulat ng mga log. Maaaring ito (o maaaring hindi) ang gusto mo. Kung hindi ka sigurado, maaaring mas mainam na itakda ang mga value gamit ang command line dahil pipigilan ka nito na hindi sinasadyang guluhin ang mga value sa iyong AMP.

Arkitekto ng ECM


Ang gawaing ito ay lisensyado sa ilalim ng Creative Commons Attribution-ShareAlike 3.0 Unported License . Bahagi 2 =>
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION