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

Pagsisimula sa Maven Alfresco SDK part 2

Nai-publish sa grupo

Pagsisimula sa Alfresco Maven SDK

Jeff Potts, Enero, 2014 <= ​​​​Part 1
  • Nagtatrabaho kami sa iyong proyekto sa IDE
  • Pag-unawa sa istraktura ng proyekto
  • Paggawa ng proyektong inangkop para sa Share access
  • Pangkalahatang Mga Dependency ng Proyekto
  • Target sa digmaan
  • Subukan natin ito: Paglikha ng isang Share project gamit ang archetype
  • Pag-unawa sa istraktura ng direktoryo ng Share Access
  • Paglunsad ng panloob na pagsubok sa Share
  • Pamamahala ng dependency
  • Iba pang mga paksa para sa malayang pag-aaral
  • Kung saan makakahanap ng higit pang impormasyon

Nagtatrabaho kami sa iyong proyekto sa IDE

Hindi ito kinakailangan, ngunit mas gusto ng maraming tao na magtrabaho sa isang IDE kapag nagse-set up ng Alfresco. Gagawin ito ng anumang IDE, ngunit ang isa sa pinakasikat ay ang Eclipse kaya tingnan natin kung paano ito gumagana.
Gumagamit ako ng Kepler na bersyon ng Eclipse Java EE IDE para sa mga Web Developer. Ito ay may kasamang built-in na suporta sa Maven.
Upang buksan ang ginawang proyekto, gawin ang sumusunod:
  • File, Import, Maven, Umiiral na Maven Projects. I-click ang Susunod.
    Pagsisimula sa Maven Alfresco SDK part 2 - 1
  • Tukuyin ang direktoryo na naglalaman ng someco-mvn-tutorial-repo na direktoryo. Susuriin ng Eclipse ang direktoryo na ito at ipapakita ang iyong proyekto sa listahan ng mga proyekto. Tiyaking napili ang checkbox sa tabi ng pangalan ng proyekto at i-click ang Susunod.
    Pagsisimula sa Maven Alfresco SDK part 2 - 2
  • Ipapakita ng Eclipse ang mga setting ng Maven Plugin Panel. Maaari mong ligtas na huwag pansinin ito ngayon. I-click ang Tapos na.
    Pagsisimula sa Maven Alfresco SDK part 2 - 3
Ang proyekto ay na-import na ngayon sa iyong Eclipse workspace.
Sa panel ng Mga Marker, makikita mo ang isang listahan ng mga isyu sa Maven na nagsasabing, "Hindi sakop ng pagsasaayos ng lifecycle ang plugin execution."
May mga problema si Maven sa mga plugin May mga problema si Maven sa mga plugin (set-version)
Upang ayusin:
  1. Mag-right-click sa error at piliin ang "Quick Fix".
  2. Ang pagpili sa "Permanenteng markahan ang set-version ng layunin sa pom.xml bilang hindi pinansin sa Eclipse build." handa na.
  3. Piliin ang lokasyon kung saan matatagpuan ang iyong POM (ang akin ay com.someco : someco-mvn-tutorial-repo : 1.0-SNAPSHOT) at i-click ang OK.
Pagkatapos muling itayo ang proyekto, maaari mong makita ang isa sa mga pinakabagong problema "Ang configuration ng proyekto ay hindi napapanahon sa pom.xml". Para sa pagwawasto:
  1. Mag-right-click sa proyekto at piliin ang Maven, Update Project.
  2. Tiyaking napili ang proyekto at i-click ang OK.
Ngayon ay malamang na masaya ang Eclipse at ang mga error lamang ay dapat dahil sa mga babala tungkol sa ilang hindi nagamit na pag-import ng Java.

Pag-unawa sa istraktura ng proyekto

Ang istraktura ng direktoryo ng iyong proyekto ay medyo mas maganda upang galugarin sa iyong IDE. Tingnan natin kung ano ang mayroon tayo dito.
  • pom.xml Sa ugat ng proyekto makikita mo ang pom.xml. Sinasabi nito kay Maven ang lahat ng kailangan nitong malaman tungkol sa iyong proyekto. Naaalala mo ba ang ilang mga setting na nakalimutan mo noong gumagawa ng isang proyekto mula sa isang template? Maaari kang gumawa ng mga pagbabago sa mga setting dito. Halimbawa, pinapayagan ka ng bersyon 1.1.1 ng archetype na magtrabaho kasama ang Alfresco Community Edition bersyon 4.2.e. Kung gusto mong magtrabaho sa ibang bersyon - baguhin lang ang ilang mga katangian at sabihin kay Maven na i-update ang mga ito at ito na ang bahala sa iba.
  • src/main/java Ito ay kung saan dapat kang lumikha ng iyong sariling mga pakete upang ayusin ang iyong Java code. Narito ang mga bagay tulad ng mga custom na action executer class, custom na gawi, Java controllers para sa mga web script. Kung hindi mo alam kung ano ang lahat ng ito, huwag mag-alala, may mga tutorial na magagamit dito . Ang mga file na ito ay ilalagay sa isang JAR. Kapag na-install ang AMP sa Alfresco WAR, ang JAR ay nasa loob ng WEB-INF/lib .
  • src/test Ang lahat sa loob ng src/test ay nauugnay sa testing execution. Ang mga pagsubok sa unit mismo ay matatagpuan sa src/test/java . Ang anumang mapagkukunang kailangan ng mga klase na ito ay nasa src/test/resources. Sa loob ng src/test/properties/local makakakita ka ng isang alfresco-global.properties file . Kung alam mo na ang anumang bagay tungkol sa Alfresco alam mo na ito ay ginagamit upang i-configure ang Alfresco server. Sa kasong ito, ito ay ginagamit lamang upang patakbuhin ang naka-embed na server, para sa mga layunin ng pagsubok.
  • src/main/amp Lahat ng iba pa ay nasa isang lugar sa bahaging ito ng proyekto. Napakahusay na dokumentado ang istraktura ng AMP kaya ayaw kong i-duplicate ito dito. Ituturo ko lang ang mga pangunahing punto:
    • Sinasabi ng module.properties file sa Alfresco kung ano ang kailangan nitong malaman tungkol sa AMP gaya ng ID nito, bersyon, minimum at maximum na bersyon ng Alfresco na kinakailangan para magpatakbo ng AMP, at anumang iba pang AMP na may parehong mga dependency .
    • Ang direktoryo ng config/alfresco/module/someco-mvn-tutorial-repo ay ang puso ng AMP. Ang lugar kung saan mo ilalagay ang mga configuration ng Spring XML file, ang modelo ng nilalaman ng mga XML file, at ang configuration ng user interface. Tulad ng makikita mo sa ibang pagkakataon, mas gusto kong paghiwalayin ang mga subdirectory para sa bawat isa sa mga bagay na ito.
    • Kung ang iyong module ay may kasamang mga web script o workflow, ang mga ito ay hindi kasama sa direktoryo ng mga module. Sa halip ay matatagpuan ang mga ito sa config/alfresco/extension/templates/webscripts at config/alfresco/extension/workflows .
    • Maaaring kasama sa iyong module ang mga mapagkukunan ng kliyente na dapat i-deploy sa ugat ng web application. Matatagpuan ang mga ito sa src/main/amp/web sa mga direktoryo ng css, jsp, script, at mga imahe.
Dapat mong suriin ang buong proyektong ito sa source control. Baka gusto mong i-configure ang iyong version control client na huwag pansinin ang target na direktoryo at ang direktoryo ng alf_data_dev.
Ngayon naiintindihan mo na kung paano lumikha ng isang proyekto para sa mga setting ng antas ng repositoryo. Tingnan natin ang antas ng Ibahagi. Bilang bahagi nito, magpapakita ako ng isa pang opsyon para sa paglikha ng isang proyekto nang hindi umaalis sa Eclipse.

Paggawa ng proyektong inangkop para sa Share access

Una, dapat mong maunawaan na ang istraktura para sa isang proyekto na nilikha sa antas ng imbakan ay eksaktong kapareho ng para sa isang proyekto para sa isang inangkop na layer ng access sa Share. Sa hinaharap ng Alfresco Maven SDK, mayroong dalawang bagay na nakikilala ang proyektong Ibahagi: Ang mga dependency ng proyekto at ang AMP WAR ay isasama sa.

Pangkalahatang Mga Dependency ng Proyekto

Huminto tayo sandali at pag-usapan ang tungkol sa pamamahala ng dependency. Sa ngayon, ang pagpapatupad ay tulad na bilang default ang naka-configure na archetype sa proyektong pom.xml ay gumagamit ng mga dependency ng alfresco-repository artifact. Ang mga nakabahaging proyekto ay walang ganitong dependency. Ang totoo, maraming Shared na proyekto ang hindi gumagamit ng Java. Ngayon, i-edit natin ang pom.xml at alisin ang mga alfresco-repository na dependencies. Magiging sanhi ito ng mga bahagi ng demo at nauugnay na mga klase ng pagsubok upang makabuo ng isang error kapag pinagsama-sama. Maaari silang alisin.

Target sa digmaan

Ang isa pang bagay na nagpapakilala sa proyektong Ibahagi ay ang WAR kung saan naka-deploy ang AMP. Sa halip na alfresco WAR, dito kailangan mong i-deploy para Share WAR. Naka-configure ito sa alfresco.client.war property sa iyong pom.xml. Bilang default, nakatakda ito sa "alfresco". Para sa isang proyektong Ibahagi, kailangan mong palitan ito ng "bahagi".

Subukan natin ito: Paglikha ng isang Share project gamit ang archetype

Gumawa tayo ng bagong proyekto gamit ang Mga Pangkalahatang Setting. Maaari kang pumunta sa command line at patakbuhin ang parehong archetype command tulad ng iyong pinatakbo noon, minus ang bagong artifactId, at pagkatapos ay baguhin ang alfresco.client.war property sa "share". Kung hindi ka gumagamit ng Eclipse, magpatuloy at gawin ito ngayon at laktawan ang susunod na seksyon.
Ang isa pang opsyon ay ang pag-configure ng Eclipse para makagawa ka ng bagong proyekto ng Alfresco gamit ang Alfresco Maven SDK nang hindi umaalis sa IDE. Gawin natin yan.
  1. File, Bagong Maven Project.
  2. Piliin ang direktoryo na naglalaman ng direktoryo ng proyekto na "repo", i-click ang Susunod.
    Pagsisimula sa Maven Alfresco SDK part 2 - 4
  3. I-click ang I-configure at maaari naming idagdag ang direktoryo ng Alfresco sa listahan.
    Pagsisimula sa Maven Alfresco SDK part 2 - 5
  4. I-click ang Magdagdag ng Remote Catalog
  5. Piliin ang "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" bilang Catalog File. Piliin ang paglalarawan na "Alfresco Archetypes". Pagkatapos, i-click ang OK at OK muli malapit sa panel ng Mga Kagustuhan.
    Pagsisimula sa Maven Alfresco SDK part 2 - 6
  6. Ngayon piliin ang "Alfresco Archetypes" sa direktoryo at makikita mo ang isang grupo ng mga archetypes sa listahan.
  7. Piliin ang "org.alfresco.maven.archetype" at ang parehong dalawang archetype ay lalabas sa filter tulad ng sa simula ng tutorial.
  8. Piliin ang alfresco-amp-archetype at i-click ang Susunod.
    Pagsisimula sa Maven Alfresco SDK part 2 - 7
  9. Ang pagpili sa "com.someco" para sa groupId, "someco-mvn-tutorial-share" bilang artifactId, at baguhin ang alfresco_target_amp_client_war sa "share". I-click ang Tapos na.
    Pagsisimula sa Maven Alfresco SDK part 2 - 8
Ang iyong Share project ay nasa workspace na ngayon. Sa susunod na gagawa ka ng bagong proyekto gamit ang archetype, mas kaunting hakbang ang aabutin dahil hindi mo na kailangang magdagdag ng direktoryo.

Pag-unawa sa istraktura ng direktoryo ng Share Access

Tulad ng nabanggit ko kanina, ang istraktura ng proyektong ito ay eksaktong kapareho ng aming proyekto sa repo. Ang pagkakaiba lamang ay sa repo project ang mga bagay tulad ng mga web script ay matatagpuan sa loob ng src/main/amp/config/alfresco/extension/templates/webscripts. Sa Pangkalahatang proyekto sila ay nasa src/main/amp/config/alfresco /web-extension/site-webscripts.

Paglunsad ng panloob na pagsubok sa Share

Kadalasan ay gagawa ka sa parehong antas ng mga setting sa parehong oras. Ang iyong Pangkalahatang antas ay nangangailangan ng repositoryo para sa mga mensahe. Ang isang paraan upang gawin ito ay ang sabihin kay Maven na simulan ang iyong repo project gamit ang:
cd someco-mvn-tutorial-repo
mvn integration-test -Pamp-to-war
At pagkatapos ay patakbuhin ang iyong Share project gamit ang:
cd someco-mvn-tutorial-share
mvn integration-test -Pamp-to-war -Dmaven.tomcat.port=8081
Kapag naka-up na ang parehong server, maaari mong buksan ang http://localhost:8081/share at mag-login upang subukan ang iyong module.

Pamamahala ng dependency

Ang cool na bagay tungkol sa Apache Maven ay pinamamahalaan nito ang mga dependency ng iyong proyekto para sa iyo. Ang kailangan mo lang gawin ay sabihin kay Maven ang tungkol sa kanila sa pamamagitan ng pag-configure ng iyong pom.xml. Bilang default, ang Alfresco Maven SDK ay lumilikha ng dalawang dependency para sa iyong proyekto: alfresco-repository at junit.
Gaya ng isinulat ko kanina, ang proyekto ng Alfresco Share ay hindi nakadepende sa Alfresco repository kaya para sa someco-mvn-tutorial-share na proyekto, ang mga dependency na ito ay maaaring alisin. Ngunit paano kung gusto kong maglagay ng ilang bagay sa Java sa aking proyektong Ibahagi, tulad ng mga script sa web na nakabatay sa Java? Sa kasong ito, kailangan nating magdagdag ng mga dependencies.
Maaaring tumakbo ang mga web script sa anumang antas. Kung magsusulat ka ng Java-based na web script sa iyong repo project, ang klase ay bubuo dahil ang mga dependency ng alfresco-repository artifact naman ay nakadepende sa spring-webscripts artifact. Makikita mo ito kung bubuksan mo ang Dependency Hierarchy sa Eclipse sa iyong pom.xml file:
Dependency Hierarchy sa Eclipse
Dependency hierarchy sa Eclipse Isa pang opsyon. Maaari mong makita ang hierarchy ng dependency sa pamamagitan ng pagpapatakbo:
mvn dependency:list
Kaya, para magdagdag ng Java-based na web script sa iyong Share project, kailangan naming magdagdag ng spring-webscripts bilang dependency. Magagawa mo ito sa pamamagitan ng pag-edit ng pom.xml tulad nito:
<dependency>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>spring-webscripts</artifactId>
    <bersyon>1.2.0-M14</bersyon>
    <scope>ibinigay</scope>
</dependency>
Ngayon ay mahahanap na ng mga web script na nakabase sa Java ang kanilang parent class - DeclarativeWebScript.
Maaaring nagtataka ka kung paano mo nalaman na ang klase ng DeclarativeWebScript ay kasama sa spring-webscripts artifact. Halimbawa, nahanap mo ito sa pamamagitan ng pagpunta sa http://artifacts.alfresco.com . Maaari kang maghanap ayon sa klase at ipapakita sa iyo ang lahat ng mga artifact na naglalaman nito.

Iba pang mga paksa para sa malayang pag-aaral

Alam mo na ngayon kung paano gamitin ang Alfresco Maven SDK para gumawa ng mga proyekto at bilang iyong Alfresco repository at i-configure ang Alfresco Share. Kung bago ka sa pagpapaunlad ng Alfresco, sana ay sumang-ayon ka na talagang madali ang pagsasama-sama ng isang proyekto upang makapagsimula. Kung nabasa mo na ang iyong mga paa sa Alfresco ngunit ginagamit mo pa rin ang mga lumang SDK, sana ay mag-udyok ito sa iyo na lumipat sa bagong SDK para gawin ang iyong mga AMP.
Mayroong maraming mga paksa na hindi sakop sa tutorial na ito. Iiwan ko ang mga ito para sa iyo upang galugarin sa iyong sariling paghuhusga. Narito ang ilan sa mga ito:
  • Sinusuportahan ng Alfresco Maven SDK ang dynamic na pag-reload ng klase kapag ginamit kasabay ng isang tool na tinatawag na JRebel .
  • Sinasaklaw ng tutorial na ito ang archetype ng AMP. Ngunit ang Alfresco Maven SDK ay may kasamang isa pang archetype na tinatawag na All-in-One. Ang archetype na ito ay nagbibigay sa iyo ng kumpletong pag-install ng Alfresco kasama ang SOLR.
  • Ang Alfresco Maven SDK ay sinusuportahan sa parehong Community Edition at Enterprise Edition. Kung kailangan mo ng tulong sa pag-access ng mga artifact sa Enterprise Edition, makipag-ugnayan sa Alfresco Support.

Kung saan makakahanap ng higit pang impormasyon

<= Bahagi 1
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION