JavaRush /Blog Java /Random-MS /Bermula dengan Maven Alfresco SDK bahagian 2
CynepHy6
Tahap
Великий Новгород

Bermula dengan Maven Alfresco SDK bahagian 2

Diterbitkan dalam kumpulan

Bermula dengan Alfresco Maven SDK

Jeff Potts, Januari, 2014 <= ​​​​Bahagian 1
  • Kami bekerja dengan projek anda dalam IDE
  • Memahami struktur projek
  • Mencipta projek yang disesuaikan untuk akses Kongsi
  • Kebergantungan Projek Am
  • Sasaran PERANG
  • Mari cuba ini: Mencipta projek Kongsi menggunakan archetype
  • Memahami struktur direktori Akses Kongsi
  • Pelancaran ujian dalaman pada Kongsi
  • Pengurusan pergantungan
  • Topik lain untuk kajian bebas
  • Di mana untuk mendapatkan maklumat lanjut

Kami bekerja dengan projek anda dalam IDE

Ini tidak perlu, tetapi ramai orang lebih suka bekerja dalam IDE apabila menyediakan Alfresco. Mana-mana IDE akan melakukan ini, tetapi salah satu yang paling popular ialah Eclipse jadi mari lihat cara ia berfungsi.
Saya menggunakan versi Kepler Eclipse Java EE IDE untuk Pembangun Web. Ia datang dengan sokongan Maven terbina dalam.
Untuk membuka projek yang dibuat, lakukan perkara berikut:
  • Fail, Import, Maven, Projek Maven Sedia Ada. Klik Seterusnya.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 1
  • Tentukan direktori yang mengandungi direktori someco-mvn-tutorial-repo. Eclipse akan menyemak direktori ini dan menunjukkan projek anda dalam senarai projek. Pastikan kotak semak di sebelah nama projek dipilih dan klik Seterusnya.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 2
  • Eclipse akan menunjukkan tetapan Panel Plugin Maven. Anda boleh mengabaikannya dengan selamat sekarang. Klik Selesai.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 3
Projek ini kini diimport ke dalam ruang kerja Eclipse anda.
Dalam panel Penanda anda boleh melihat senarai isu Maven yang mengatakan, "Pelaksanaan pemalam tidak diliputi oleh konfigurasi kitaran hayat".
Maven mempunyai masalah dengan pemalam Maven menghadapi masalah dengan pemalam (versi set)
Untuk membetulkan:
  1. Klik kanan pada ralat dan pilih "Pembetulan Pantas".
  2. Memilih "Tandai versi set matlamat secara kekal dalam pom.xml sebagai diabaikan dalam binaan Eclipse". sedia.
  3. Pilih lokasi di mana POM anda berada (saya ialah com.someco : someco-mvn-tutorial-repo : 1.0-SNAPSHOT) dan klik OK.
Selepas membina semula projek, anda mungkin melihat salah satu masalah terkini "Konfigurasi projek tidak dikemas kini dengan pom.xml". Untuk pembetulan:
  1. Klik kanan pada projek dan pilih Maven, Projek Kemas Kini.
  2. Pastikan projek dipilih dan klik OK.
Sekarang Eclipse mungkin gembira dan satu-satunya ralat sepatutnya disebabkan oleh amaran tentang beberapa import Java yang tidak digunakan.

Memahami struktur projek

Struktur direktori projek anda lebih bagus untuk diterokai dalam IDE anda. Mari lihat apa yang ada di sini.
  • pom.xml Dalam akar projek anda melihat pom.xml. Ia memberitahu Maven semua yang perlu diketahui tentang projek anda. Adakah anda masih ingat beberapa tetapan yang anda terlupa semasa membuat projek daripada templat? Anda boleh membuat perubahan dalam tetapan di sini. Contohnya, versi 1.1.1 archetype membolehkan anda bekerja dengan Alfresco Community Edition versi 4.2.e. Jika anda ingin bekerja dengan versi yang berbeza - cuma tukar beberapa sifat dan beritahu Maven untuk mengemas kininya dan ia akan menguruskan yang lain.
  • src/main/java Di sinilah anda harus membuat pakej anda sendiri untuk mengatur kod Java anda. Perkara seperti kelas pelaksana tindakan tersuai, gelagat tersuai, pengawal Java untuk skrip web ada di sini. Jika anda tidak tahu apa semua ini, jangan risau, terdapat tutorial tersedia di sini . Fail ini akhirnya akan diletakkan di dalam JAR. Apabila AMP dipasang dalam Alfresco WAR, JAR akan berada di dalam WEB-INF/lib .
  • src/test Segala-galanya di dalam src/test berkaitan dengan pelaksanaan ujian. Ujian unit itu sendiri terletak di src/test/java . Sebarang sumber yang diperlukan oleh kelas ini akan berada dalam src/test/resources. Di dalam src/test/properties/local anda akan melihat fail alfresco-global.properties . Jika anda sudah mengetahui apa-apa tentang Alfresco, anda tahu ia digunakan untuk mengkonfigurasi pelayan Alfresco. Dalam kes ini, ini hanya digunakan untuk menjalankan pelayan terbenam, untuk tujuan ujian.
  • src/main/amp Semua yang lain berada di suatu tempat di bahagian projek ini. Struktur AMP didokumentasikan dengan sangat baik sehingga saya tidak mahu menduplikasinya di sini. Saya hanya akan menunjukkan perkara utama:
    • Fail module.properties memberitahu Alfresco perkara yang perlu diketahui tentang AMP seperti ID, versi, versi minimum dan maksimum Alfresco yang diperlukan untuk menjalankan AMP dan mana-mana AMP lain dengan kebergantungan yang sama.
    • Direktori config/alfresco/module/someco-mvn-tutorial-repo ialah nadi AMP. Tempat di mana anda akan meletakkan konfigurasi fail XML Spring, model kandungan fail XML dan konfigurasi antara muka pengguna. Seperti yang anda akan lihat kemudian, saya lebih suka mengasingkan subdirektori untuk setiap perkara ini.
    • Jika modul anda termasuk skrip web atau aliran kerja, ia tidak terkandung dalam direktori modul. Sebaliknya ia terletak dalam config/alfresco/extension/templates/webscripts dan config/alfresco/extension/workflows .
    • Modul anda mungkin termasuk sumber pelanggan yang mesti digunakan pada akar aplikasi web. Ia terletak di src/main/amp/web dalam direktori css, jsp, skrip dan imej.
Anda harus menyemak keseluruhan projek ini ke dalam kawalan sumber. Anda mungkin mahu mengkonfigurasi klien kawalan versi anda untuk mengabaikan direktori sasaran dan direktori alf_data_dev.
Kini anda memahami cara membuat projek untuk tetapan tahap repositori. Mari kita lihat pada tahap Kongsi. Sebagai sebahagian daripada ini, saya akan menunjukkan pilihan lain untuk mencipta projek tanpa meninggalkan Eclipse.

Mencipta projek yang disesuaikan untuk akses Kongsi

Pertama, anda mesti memahami bahawa struktur untuk projek yang dibuat pada peringkat repositori adalah sama seperti untuk projek untuk lapisan akses Kongsi yang disesuaikan. Pada masa hadapan Alfresco Maven SDK, terdapat dua perkara yang membezakan projek Kongsi: Kebergantungan projek dan AMP WAR akan dibina.

Kebergantungan Projek Am

Mari kita berhenti seketika dan bercakap tentang pengurusan pergantungan. Pada masa ini, pelaksanaan adalah sedemikian rupa sehingga secara lalai archetype yang dikonfigurasikan dalam projek pom.xml menggunakan kebergantungan artifak alfresco-repository. Projek kongsi tidak mempunyai pergantungan ini. Hakikatnya, banyak projek Shared tidak menggunakan Java sama sekali. Sekarang mari edit pom.xml dan alih keluar kebergantungan alfresco-repository. Ini akan menyebabkan komponen demo dan kelas ujian yang berkaitan menghasilkan ralat apabila disusun. Mereka boleh dikeluarkan.

Sasaran PERANG

Satu lagi perkara yang membezakan projek Kongsi ialah PERANG di mana AMP digunakan. Daripada WAR terbuka, di sini anda perlu menggunakan untuk Kongsi WAR. Ini dikonfigurasikan dalam sifat alfresco.client.war dalam pom.xml anda. Secara lalai ini ditetapkan kepada "alfresco". Untuk projek Kongsi, anda perlu menggantikannya dengan "kongsi".

Mari cuba ini: Mencipta projek Kongsi menggunakan archetype

Mari buat projek baharu dengan Tetapan Umum. Anda boleh pergi ke baris arahan dan menjalankan perintah archetype yang sama seperti yang anda jalankan sebelum ini, tolak artifactId baharu, dan kemudian menukar sifat alfresco.client.war kepada "kongsi". Jika anda tidak menggunakan Eclipse, teruskan dan lakukannya sekarang dan langkau bahagian seterusnya.
Pilihan lain ialah mengkonfigurasi Eclipse supaya anda boleh mencipta projek Alfresco baharu menggunakan SDK Alfresco Maven tanpa meninggalkan IDE. Jom buat macam tu.
  1. Fail, Projek Maven Baharu.
  2. Pilih direktori yang mengandungi direktori projek "repo", klik Seterusnya.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 4
  3. Klik Konfigurasikan dan kami boleh menambah direktori Alfresco pada senarai.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 5
  4. Klik Tambah Katalog Jauh
  5. Pilih "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" sebagai Fail Katalog. Pilih perihalan "Alfresco Archetypes". Selepas itu, klik OK dan OK sekali lagi lebih dekat dengan panel Keutamaan.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 6
  6. Sekarang pilih "Alfresco Archetypes" dalam direktori dan anda akan melihat sekumpulan archetypes dalam senarai.
  7. Pilih "org.alfresco.maven.archetype" dan dua arketaip yang sama akan muncul dalam penapis seperti pada permulaan tutorial.
  8. Pilih alfresco-amp-archetype dan klik Seterusnya.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 7
  9. Memilih "com.someco" untuk groupId, "someco-mvn-tutorial-share" sebagai artifactId dan tukar alfresco_target_amp_client_war kepada "kongsi". Klik Selesai.
    Bermula dengan Maven Alfresco SDK bahagian 2 - 8
Projek Kongsi anda kini berada di ruang kerja. Pada kali seterusnya anda membuat projek baharu menggunakan archetype, ia akan mengambil sedikit langkah kerana anda tidak perlu menambah direktori.

Memahami struktur direktori Akses Kongsi

Seperti yang saya nyatakan sebelum ini, struktur projek ini adalah sama dengan projek repo kami. Satu-satunya perbezaan ialah dalam projek repo perkara seperti skrip web terletak di dalam src/main/amp/config/alfresco/extension/templates/webscripts. Dalam projek Umum mereka akan berada dalam src/main/amp/config/alfresco /web-extension/site-webscripts.

Pelancaran ujian dalaman pada Kongsi

Selalunya anda akan bekerja pada kedua-dua peringkat tetapan pada masa yang sama. Tahap Umum anda memerlukan repositori untuk mesej. Satu cara untuk melakukan ini ialah memberitahu Maven untuk memulakan projek repo anda menggunakan:
cd someco-mvn-tutorial-repo
ujian integrasi mvn -Pamp-to-war
Dan kemudian jalankan projek Kongsi anda menggunakan:
cd someco-mvn-tutorial-share
ujian integrasi mvn -Pamp-to-war -Dmaven.tomcat.port=8081
Setelah kedua-dua pelayan siap, anda boleh membuka http://localhost:8081/share dan log masuk untuk menguji modul anda.

Pengurusan pergantungan

Perkara yang menarik tentang Apache Maven ialah ia menguruskan kebergantungan projek anda untuk anda. Apa yang anda perlu lakukan ialah memberitahu Maven tentang mereka dengan mengkonfigurasi pom.xml anda. Secara lalai, Alfresco Maven SDK mencipta dua kebergantungan untuk projek anda: alfresco-repository dan junit.
Seperti yang saya tulis sebelum ini, projek Alfresco Share tidak bergantung pada repositori Alfresco jadi untuk projek someco-mvn-tutorial-share, kebergantungan ini boleh dialih keluar. Tetapi bagaimana jika saya ingin memasukkan beberapa barangan Java ke dalam projek Kongsi saya, seperti skrip web berasaskan Java? Dalam kes ini, kita perlu menambah kebergantungan.
Skrip web boleh dijalankan pada mana-mana peringkat. Jika anda menulis skrip web berasaskan Java dalam projek repo anda, kelas akan dibina kerana kebergantungan artifak repositori terbuka pula bergantung pada artifak spring-webscripts. Anda boleh melihat ini jika anda membuka Hierarki Ketergantungan dalam Eclipse dalam fail pom.xml anda:
Hierarki Ketergantungan dalam Eclipse
Hierarki kebergantungan dalam Eclipse Pilihan lain. Anda boleh melihat hierarki pergantungan dengan menjalankan:
mvn dependency:list
Jadi, untuk menambah skrip web berasaskan Java pada projek Kongsi anda, kami perlu menambah skrip web spring sebagai kebergantungan. Anda boleh melakukannya dengan mengedit pom.xml seperti ini:
<bergantung>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>spring-webscripts</artifactId>
    <versi>1.2.0-M14</versi>
    <skop>disediakan</skop>
</pergantungan>
Kini skrip web berasaskan Java akan dapat mencari kelas induknya - DeclarativeWebScript.
Anda mungkin tertanya-tanya bagaimana anda mengetahui bahawa kelas DeclarativeWebScript disertakan dalam artifak spring-webscripts. Contohnya, setelah menemuinya dengan pergi ke http://artifacts.alfresco.com . Anda boleh mencari mengikut kelas dan anda akan ditunjukkan semua artifak yang mengandunginya.

Topik lain untuk kajian bebas

Anda kini tahu cara menggunakan Alfresco Maven SDK untuk membuat projek dan sebagai repositori Alfresco anda dan mengkonfigurasi Alfresco Share. Jika anda baru dalam pembangunan Alfresco, saya harap anda akan bersetuju bahawa sangat mudah untuk menyusun projek untuk bermula. Jika anda sudah membasahi kaki anda dengan Alfresco tetapi masih menggunakan SDK lama, saya harap ini mendorong anda untuk beralih kepada SDK baharu untuk membuat AMP anda.
Terdapat banyak topik yang tidak dibincangkan dalam tutorial ini. Saya akan meninggalkan mereka untuk anda meneroka mengikut budi bicara anda sendiri. Berikut adalah sebahagian daripada mereka:
  • Alfresco Maven SDK menyokong pemuatan semula kelas dinamik apabila digunakan bersama dengan alat yang dipanggil JRebel .
  • Tutorial ini merangkumi archetype AMP. Tetapi Alfresco Maven SDK menyertakan satu lagi bentuk dasar yang dipanggil All-in-One. Archetype ini memberikan anda pemasangan Alfresco yang lengkap termasuk SOLR.
  • Alfresco Maven SDK disokong dalam Edisi Komuniti dan Edisi Perusahaan. Jika anda memerlukan bantuan mengakses artifak dalam Edisi Perusahaan, hubungi Sokongan Alfresco.

Di mana untuk mendapatkan maklumat lanjut

<= Bahagian 1
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION