JavaRush /Java Blog /Random-ID /Memulai Maven Alfresco SDK bagian 2
CynepHy6
Level 34
Великий Новгород

Memulai Maven Alfresco SDK bagian 2

Dipublikasikan di grup Random-ID

Memulai dengan Alfresco Maven SDK

Jeff Potts, Januari 2014 <= ​​​​Bagian 1
  • Kami bekerja dengan proyek Anda di IDE
  • Memahami struktur proyek
  • Membuat proyek yang disesuaikan untuk akses Berbagi
  • Ketergantungan Proyek Umum
  • sasaran PERANG
  • Mari kita coba ini: Membuat proyek Berbagi menggunakan arketipe
  • Memahami struktur direktori Share Access
  • Peluncuran pengujian internal di Share
  • Manajemen ketergantungan
  • Topik lain untuk belajar mandiri
  • Di mana menemukan informasi lebih lanjut

Kami bekerja dengan proyek Anda di IDE

Ini tidak perlu, tetapi banyak orang lebih memilih bekerja dalam IDE saat menyiapkan Alfresco. IDE apa pun bisa melakukan ini, tapi salah satu yang paling populer adalah Eclipse jadi mari kita lihat cara kerjanya.
Saya menggunakan Eclipse Java EE IDE versi Kepler untuk Pengembang Web. Muncul dengan dukungan Maven bawaan.
Untuk membuka proyek yang dibuat, lakukan hal berikut:
  • File, Impor, Maven, Proyek Maven yang Ada. Klik Berikutnya.
    Memulai Maven Alfresco SDK bagian 2 - 1
  • Tentukan direktori yang berisi direktori someco-mvn-tutorial-repo. Eclipse akan memeriksa direktori ini dan menampilkan proyek Anda dalam daftar proyek. Pastikan kotak centang di sebelah nama proyek dipilih dan klik Berikutnya.
    Memulai Maven Alfresco SDK bagian 2 - 2
  • Eclipse akan menampilkan pengaturan Panel Plugin Maven. Anda dapat mengabaikannya dengan aman sekarang. Klik Selesai.
    Memulai Maven Alfresco SDK bagian 2 - 3
Proyek ini sekarang diimpor ke ruang kerja Eclipse Anda.
Di panel Penanda Anda dapat melihat daftar masalah Maven yang menyatakan, "Eksekusi plugin tidak tercakup dalam konfigurasi siklus hidup".
Maven mempunyai masalah dengan plugin Maven memiliki masalah dengan plugin (versi set)
Untuk memperbaikinya:
  1. Klik kanan pada kesalahan dan pilih "Perbaikan Cepat".
  2. Memilih "Tandai versi set sasaran secara permanen di pom.xml sebagai diabaikan dalam versi Eclipse". Siap.
  3. Pilih lokasi dimana POM Anda berada (milik saya adalah com.someco : someco-mvn-tutorial-repo : 1.0-SNAPSHOT) dan klik OK.
Setelah membangun kembali proyek, Anda mungkin melihat salah satu masalah terbaru "Konfigurasi proyek tidak mutakhir dengan pom.xml". Untuk koreksi:
  1. Klik kanan pada proyek dan pilih Maven, Perbarui Proyek.
  2. Pastikan proyek dipilih dan klik OK.
Sekarang Eclipse mungkin senang dan satu-satunya kesalahan disebabkan oleh peringatan tentang beberapa impor Java yang tidak digunakan.

Memahami struktur proyek

Struktur direktori proyek Anda sedikit lebih bagus untuk dijelajahi di IDE Anda. Mari kita lihat apa yang kita miliki di sini.
  • pom.xml Di root proyek Anda melihat pom.xml. Ini memberi tahu Maven segala hal yang perlu diketahui tentang proyek Anda. Apakah Anda ingat beberapa pengaturan yang Anda lupa saat membuat proyek dari template? Anda dapat membuat perubahan pada pengaturan di sini. Misalnya, arketipe versi 1.1.1 memungkinkan Anda bekerja dengan Alfresco Community Edition versi 4.2.e. Jika Anda ingin bekerja dengan versi yang berbeda - cukup ubah beberapa properti dan beri tahu Maven untuk memperbaruinya dan sisanya akan ditangani.
  • src/main/java Di sinilah Anda harus membuat paket sendiri untuk mengatur kode Java Anda. Hal-hal seperti kelas pelaksana tindakan khusus, perilaku khusus, pengontrol Java untuk skrip web ada di sini. Jika Anda tidak tahu apa itu semua, jangan khawatir, ada tutorial yang tersedia di sini . File-file ini pada akhirnya akan ditempatkan di JAR. Saat AMP dipasang di Alfresco WAR, JAR akan berada di dalam WEB-INF/lib .
  • src/test Segala sesuatu di dalam src/test terkait dengan eksekusi pengujian. Tes unitnya sendiri terletak di src/test/java . Sumber daya apa pun yang dibutuhkan oleh kelas-kelas ini akan ada di src/test/resources. Di dalam src/test/properties/local Anda akan melihat file alfresco-global.properties . Jika Anda sudah mengetahui sesuatu tentang Alfresco, Anda pasti tahu bahwa itu digunakan untuk mengkonfigurasi server Alfresco. Dalam hal ini, ini hanya digunakan untuk menjalankan server tertanam, untuk tujuan pengujian.
  • src/main/amp Segala sesuatu yang lain ada di bagian proyek ini. Struktur AMP didokumentasikan dengan baik sehingga saya tidak ingin menduplikasinya di sini. Saya hanya akan menunjukkan poin utamanya:
    • File module.properties memberi tahu Alfresco apa yang perlu diketahui tentang AMP seperti ID, versi, versi minimum dan maksimum Alfresco yang diperlukan untuk menjalankan AMP, dan AMP lain dengan dependensi yang sama.
    • Direktori config/alfresco/module/someco-mvn-tutorial-repo adalah jantung dari AMP. Tempat Anda akan menempatkan konfigurasi file Spring XML, model konten file XML, dan konfigurasi antarmuka pengguna. Seperti yang akan Anda lihat nanti, saya lebih suka memisahkan subdirektori untuk masing-masing hal ini.
    • Jika modul Anda menyertakan skrip web atau alur kerja, maka modul tersebut tidak terdapat dalam direktori modul. Sebaliknya mereka berada di config/alfresco/extension/templates/webscripts dan config/alfresco/extension/workflows .
    • Modul Anda mungkin menyertakan sumber daya klien yang harus disebarkan ke root aplikasi web. Mereka terletak di src/main/amp/web di direktori css, jsp, scripts, dan images.
Anda harus memeriksa seluruh proyek ini ke dalam kendali sumber. Anda mungkin ingin mengonfigurasi klien kontrol versi Anda untuk mengabaikan direktori target dan direktori alf_data_dev.
Sekarang Anda memahami cara membuat proyek untuk pengaturan tingkat repositori. Mari kita lihat tingkat Bagikan. Sebagai bagian dari ini, saya akan menunjukkan opsi lain untuk membuat proyek tanpa meninggalkan Eclipse.

Membuat proyek yang disesuaikan untuk akses Berbagi

Pertama, Anda harus memahami bahwa struktur proyek yang dibuat pada tingkat repositori sama persis dengan proyek untuk lapisan akses Berbagi yang diadaptasi. Di masa depan Alfresco Maven SDK, ada dua hal yang membedakan proyek Share: Ketergantungan proyek dan AMP WAR akan dibangun di dalamnya.

Ketergantungan Proyek Umum

Mari kita berhenti sejenak dan membahas tentang manajemen ketergantungan. Saat ini, implementasinya sedemikian rupa sehingga secara default arketipe yang dikonfigurasi dalam proyek pom.xml menggunakan dependensi artefak repositori alfresco. Proyek bersama tidak memiliki ketergantungan ini. Faktanya, banyak proyek Bersama yang tidak menggunakan Java sama sekali. Sekarang mari kita edit pom.xml dan hapus dependensi alfresco-repository. Hal ini akan menyebabkan komponen demo dan kelas pengujian terkait menghasilkan kesalahan saat dikompilasi. Mereka bisa dihilangkan.

sasaran PERANG

Hal lain yang membedakan proyek Share adalah WAR di mana AMP di-deploy. Daripada WAR di luar ruangan, di sini Anda perlu menyebarkan ke Share WAR. Ini dikonfigurasi di properti alfresco.client.war di pom.xml Anda. Secara default ini diatur ke "di luar ruangan". Untuk proyek Bagikan, Anda perlu menggantinya dengan "berbagi".

Mari kita coba ini: Membuat proyek Berbagi menggunakan arketipe

Mari buat proyek baru dengan Pengaturan Umum. Anda dapat membuka baris perintah dan menjalankan perintah arketipe yang sama seperti yang Anda jalankan sebelumnya, tanpa artefakId baru, lalu mengubah properti alfresco.client.war menjadi "berbagi". Jika Anda tidak menggunakan Eclipse, lanjutkan dan lakukan sekarang dan lewati bagian berikutnya.
Opsi lainnya adalah mengonfigurasi Eclipse sehingga Anda dapat membuat proyek Alfresco baru menggunakan Alfresco Maven SDK tanpa meninggalkan IDE. Ayo lakukan itu.
  1. File, Proyek Maven Baru.
  2. Pilih direktori yang berisi direktori proyek "repo", klik Berikutnya.
    Memulai Maven Alfresco SDK bagian 2 - 4
  3. Klik Konfigurasi dan kita dapat menambahkan direktori Alfresco ke dalam daftar.
    Memulai Maven Alfresco SDK bagian 2 - 5
  4. Klik Tambahkan Katalog Jarak Jauh
  5. Pilih "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" sebagai File Katalog. Pilih deskripsi "Arketipe Alfresco". Setelah itu, klik OK dan OK lagi di dekat panel Preferensi.
    Memulai Maven Alfresco SDK bagian 2 - 6
  6. Sekarang pilih "Alfresco Archetypes" di direktori dan Anda akan melihat banyak arketipe dalam daftar.
  7. Pilih "org.alfresco.maven.archetype" dan dua arketipe yang sama akan muncul di filter seperti di awal tutorial.
  8. Pilih alfresco-amp-archetype dan klik Berikutnya.
    Memulai Maven Alfresco SDK bagian 2 - 7
  9. Pilih "com.someco" untuk groupId, "someco-mvn-tutorial-share" sebagai artefakId, dan ubah alfresco_target_amp_client_war menjadi "share". Klik Selesai.
    Memulai Maven Alfresco SDK bagian 2 - 8
Proyek Bagikan Anda sekarang ada di ruang kerja. Saat berikutnya Anda membuat proyek baru menggunakan arketipe, langkah yang diperlukan akan lebih sedikit karena Anda tidak perlu menambahkan direktori.

Memahami struktur direktori Share Access

Seperti yang saya sebutkan sebelumnya, struktur proyek ini sama persis dengan proyek repo kami. Satu-satunya perbedaan adalah bahwa dalam proyek repo, hal-hal seperti skrip web terletak di dalam src/main/amp/config/alfresco/extension/templates/webscripts. Dalam proyek Umum, mereka akan berada di src/main/amp/config/alfresco /web-extension/site-webscripts.

Peluncuran pengujian internal di Share

Seringkali Anda akan mengerjakan kedua tingkat pengaturan secara bersamaan. Tingkat Umum Anda memerlukan tempat penyimpanan pesan. Salah satu cara untuk melakukannya adalah dengan memberitahu Maven untuk memulai proyek repo Anda menggunakan:
cd someco-mvn-tutorial-repo
mvn uji integrasi -Pamp-to-war
Dan kemudian jalankan proyek Bagikan Anda menggunakan:
cd someco-mvn-tutorial-berbagi
mvn uji integrasi -Pamp-to-war -Dmaven.Tomcat.port=8081
Setelah kedua server aktif, Anda dapat membuka http://localhost:8081/share dan login untuk menguji modul Anda.

Manajemen ketergantungan

Hal keren tentang Apache Maven adalah ia mengelola dependensi proyek untuk Anda. Yang perlu Anda lakukan hanyalah memberi tahu Maven tentang hal itu dengan mengonfigurasi pom.xml Anda. Secara default, Alfresco Maven SDK membuat dua dependensi untuk proyek Anda: alfresco-repository dan junit.
Seperti yang saya tulis sebelumnya, proyek Alfresco Share tidak bergantung pada repositori Alfresco sehingga untuk proyek someco-mvn-tutorial-share, ketergantungan ini dapat dihilangkan. Namun bagaimana jika saya ingin memasukkan beberapa hal Java ke dalam proyek Share saya, seperti skrip web berbasis Java? Dalam hal ini, kita perlu menambahkan dependensi.
Skrip web dapat dijalankan di tingkat mana pun. Jika Anda menulis skrip web berbasis Java di proyek repo Anda, kelas akan dibuat karena dependensi artefak repositori alfresco pada gilirannya bergantung pada artefak skrip web pegas. Anda dapat melihat ini jika Anda membuka Hierarki Ketergantungan di Eclipse di file pom.xml Anda:
Hirarki Ketergantungan di Eclipse
Hierarki ketergantungan di Eclipse Pilihan lain. Anda dapat melihat hierarki ketergantungan dengan menjalankan:
ketergantungan mvn: daftar
Jadi, untuk menambahkan skrip web berbasis Java ke proyek Share Anda, kita perlu menambahkan skrip web pegas sebagai ketergantungan. Anda dapat melakukannya dengan mengedit pom.xml seperti ini:
<ketergantungan>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>skrip web pegas</artifactId>
    <versi>1.2.0-M14</versi>
    <cakupan>disediakan</cakupan>
</ketergantungan>
Sekarang skrip web berbasis Java akan dapat menemukan kelas induknya - DeclarativeWebScript.
Anda mungkin bertanya-tanya bagaimana Anda mengetahui bahwa kelas DeclarativeWebScript disertakan dalam artefak spring-webscripts. Misalnya, setelah menemukannya dengan membuka http://artifacts.alfresco.com . Anda dapat mencari berdasarkan kelas dan Anda akan diperlihatkan semua artefak yang memuatnya.

Topik lain untuk belajar mandiri

Anda sekarang tahu cara menggunakan Alfresco Maven SDK untuk membuat proyek dan sebagai repositori Alfresco Anda serta mengonfigurasi Alfresco Share. Jika Anda baru mengenal pengembangan Alfresco, saya harap Anda setuju bahwa menyusun proyek untuk memulai sangatlah mudah. Jika Anda sudah terbiasa dengan Alfresco tetapi masih menggunakan SDK lama, saya harap ini memotivasi Anda untuk beralih ke SDK baru untuk membuat AMP.
Masih banyak topik yang tidak dibahas dalam tutorial ini. Saya akan meninggalkannya untuk Anda jelajahi sesuai kebijaksanaan Anda sendiri. Berikut beberapa di antaranya:
  • Alfresco Maven SDK mendukung pemuatan ulang kelas dinamis bila digunakan bersama dengan alat yang disebut JRebel .
  • Tutorial ini mencakup arketipe AMP. Namun Alfresco Maven SDK menyertakan arketipe lain yang disebut All-in-One. Pola dasar ini memberi Anda instalasi Alfresco lengkap termasuk SOLR.
  • Alfresco Maven SDK didukung dalam Edisi Komunitas dan Edisi Perusahaan. Jika Anda memerlukan bantuan dalam mengakses artefak di Edisi Perusahaan, hubungi Dukungan Alfresco.

Di mana menemukan informasi lebih lanjut

<= Bagian 1
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION