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

Bermula dengan Maven Alfresco SDK bahagian 1

Diterbitkan dalam kumpulan

Bermula dengan Alfresco Maven SDK

Jeff Potts, Januari, 2014 bahagian 2 =>
  • pengenalan
  • Konsep asas
  • Apache Maven
  • Pakej Modular Alfresco(AMP)
  • SDK Maven Alfresco
  • Apa yang boleh anda katakan tentang SDK berasaskan Ant lama?
  • Projek pertama anda
  • Jom lancarkan
  • Apa itu?
  • Perintah binaan lain
  • Pembalakan

pengenalan

Tutorial ini dicipta untuk mereka yang perlu, dalam beberapa cara, mengkonfigurasi Alfresco pada projek. Jadi pada mulanya anda berfikir, "Apakah ini?!" Tetapi pada akhirnya anda akan belajar:

  • Cara membuat projek Alfresco dari awal menggunakan Alfresco Maven SDK
  • Perkara yang perlu berlaku bergantung pada tetapan anda
  • Cara membuat dan menjalankan ujian
  • Cara mencipta artifak yang sesuai untuk dibenamkan atau dikongsi dengan komuniti

Tutorial ini harus dianggap sebagai titik permulaan sebelum anda meneruskan pembelajaran yang lebih terperinci tentang perkara seperti pemodelan kandungan, menyesuaikan tindakan dan tingkah laku, aliran kerja tambahan atau skrip web.

Sebelum kita mula, penyimpangan singkat: Hampir selalu terdapat banyak jalan alternatif kepada penyelesaian. Dalam tutorial ini saya akan membawa anda dengan cara yang paling mudah dan langsung, laluan selamat yang akan membantu anda memikirkannya dengan lebih cepat. Kemudian anda boleh menukar beberapa perkara atau meneroka laluan lain jika anda mahu.

Konsep asas.

Anda tidak perlu mengetahui terlalu banyak tentang Maven, Alfresco atau sebab SDK ini diperlukan sebelum anda mula menggunakannya, tetapi beberapa pengetahuan boleh membantu dalam beberapa cara, jadi izinkan saya membimbing anda dengan cepat melalui konsep asas.

Apache Maven

Apache Maven ialah alat pengurusan binaan. Ia mempunyai banyak ciri, tetapi yang utama ialah ia menjimatkan masa dalam memikirkan kebergantungan (dan kebergantungan kebergantungan) projek anda bergantung. Maven boleh mendapatkan semula dan menyimpan kebergantungan ini untuk anda. Jika anda pernah meluangkan masa mencuba untuk mengetahui fail JAR mana yang datang selepas fail JAR, maka kegunaan alat tersebut adalah jelas.

Pakej Modular Alfresco(AMP)

AMP ialah fail ZIP dengan struktur direktori mengikut konvensyen tertentu. Fail AMP digunakan untuk berkongsi dan menggunakan tetapan dengan mudah pada platform Alfresco. Jika projek anda perlu membuat tetapan tersuai pada peringkat repo (apl web/alfresco) maka anda membuat "repo" AMP. Jika projek anda perlu membuat tetapan pada peringkat Kongsi (apl web / kongsi), anda membuat AMP "kongsi". Ia agak tipikal untuk projek apabila perubahan diperlukan pada kedua-dua peringkat, anda membuat dua AMP.

SDK Maven Alfresco

Pengaturcara hari ini sudah terbiasa dengan rangka kerja yang berkuasa di mana direktori kosong akan diisi sepenuhnya dengan fail dalam satu minit dan pada saat berikutnya projek anda bersedia untuk dilancarkan. Mengapakah pemaju Alfresco perlu membayar lebih murah?

Matlamat SDK berasaskan Maven adalah untuk mencipta keadaan yang paling mudah untuk memulakan pembangunan untuk Alfresco. SDK terdiri daripada templat projek ("arketip" dalam terminologi Maven) dan beberapa ciri terbina dalam yang memberitahu Maven cara membuat AMP dan mengaturnya ke Alfresco.

Jika anda menulis aplikasi anda sendiri secara berasingan daripada Alfresco dan Share WARs, maka anda tidak memerlukan Alfresco Maven SDK. Tetapi jika anda akan menulis kod yang dijalankan dalam mana-mana aplikasi web ini, Alfresco Maven SDK ialah tempat untuk bermula.

Bagaimana pula dengan SDK berasaskan Ant lama?

Alfresco telah menyediakan SDK yang boleh dimuat turun ini sejak awal. SDK mengandungi bekas ZIP dengan kebergantungan yang diperlukan untuk penyusunan, kod sumber, dokumentasi dan contoh projek Eclipse. Contoh-contoh ini menggunakan pembina berasaskan Semut.

Tidak ada yang salah dengan pendekatan ini, tetapi platform pembangunan telah berkembang, dan SDK Ant telah gagal berkembang bersamanya. Mulai hari ini, sebahagian daripada contoh ini sudah lapuk (contohnya, API perkhidmatan Web asli atau antara muka pengguna Alfresco Explorer) dan tidak terdapat contoh yang mencukupi untuk bahagian yang sangat penting seperti CMIS, skrip Web dan aliran kerja lanjutan menggunakan Activiti.

Sebagai tambahan kepada contoh lapuknya, Ant SDK lama diperlukan. Pemaju melakukan terlalu banyak kerja. Dengan Alfresco Maven SDK, anda tidak perlu memuat turun apa-apa pun - anda hanya mencipta projek anda dan mula mengekod.

Anda kini mempunyai tahap pemahaman yang tinggi tentang Apache Maven, AMP dan Alfresco Maven SDK. Sudah tiba masanya untuk melihat semuanya beraksi

Projek Pertama Anda

Biar saya tunjukkan kepada anda betapa mudahnya untuk mula membangunkan Alfresco menggunakan Alfresco Maven SDK. Sebelum kita bermula, saya mesti mengingatkan anda untuk memasang JDK 1.7, serta memasang Apache Maven 3. Anda tidak perlu memuat turun apa-apa lagi. Serius. Malah Alfresco.

  1. Buat direktori kosong. Kami akan membuat beberapa direktori tambahan di dalamnya tidak lama lagi.
  2. Sekarang mari buat projek kosong. Katakan anda ingin mencipta sesuatu yang akan anda gunakan ke repositori Alfresco, contohnya model kandungan tersuai, beberapa tindakan peraturan tersuai, set skrip web baharu atau beberapa proses perniagaan Activiti. Ia benar-benar tidak penting. Untuk membuat projek baharu, jalankan arahan:
    mvn archetype:generate\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven akan melakukan beberapa kerja dan akhirnya meminta anda memilih "archetype". Pilihan asas anda daripada perpustakaan templat projek. Terdapat dua tersedia di sini. Satu dipanggil "alfresco-amp-archetype" dan satu lagi "alfresco-allinone-archetype". Matlamat kami adalah untuk mencipta AMP yang boleh digunakan dalam Alfresco, jadi perkara pertama ialah perkara yang kami perlukan. Taip 1 dan tekan Enter.
  4. Maven kini meminta anda untuk versi khusus templat yang akan anda jadikan asas projek anda. Pada masa ini, versi terkini ialah 1.1.1 yang merupakan pilihan kelima dalam senarai jadi tekan 5 dan Enter.
  5. Maven bertanya tentang groupId. Ia serupa dengan "pakej Java". Contoh saya sentiasa berdasarkan fakta bahawa saya bekerja di sebuah syarikat rekaan bernama SomeCo, jadi saya akan memasukkan "com.someco" di sini. Taip sesuatu yang masuk akal kepada anda dan tekan Enter.
  6. Seterusnya ialah artifactId. Fikirkan ia sebagai nama projek anda. Ini juga akan menjadi ID AMP anda jadi pilih sesuatu yang istimewa. Anda juga harus menambah baris "-repo" pada artifactId anda kerana modul ini akan dibina ke dalam repositori. Saya akan menamakan saya "someco-mvn-tutorial-repo" dan tekan Enter.

  7. Pada ketika ini, Maven akan menunjukkan kepada anda nilai yang anda masukkan, menambah beberapa lalai lain dan meminta anda mengesahkan pilihan anda. Jika anda ingin menukar apa-apa, anda boleh memilih "N" dan kemudian buat perubahan atau "Y" untuk meneruskan. Anda sentiasa boleh menukar nilai ini kemudian jika perlu. Tekan "Y" dan kemudian Enter.

Maven kini akan melakukan beberapa kerja. Apabila ia selesai anda akan mendapat yang berikut:

  • Projek yang berstruktur untuk menyokong pembangunan Alfresco anda
  • Fail konfigurasi lalai
  • Kod Java minimum untuk ujian unit tambahan untuk memastikan semuanya berfungsi
  • Konfigurasi diperlukan untuk menjalankan contoh Alfresco tempatan yang diperlukan untuk ujian
  • Fail XML POM (Model Objek Projek) lalai yang memberitahu Maven kebergantungan yang ada pada projek anda

Jom jalankan

Anda belum memuat naik apa-apa lagi. Anda belum menyunting apa-apa lagi. Apa yang anda lakukan hanyalah memberitahu Maven untuk membuat projek berdasarkan templat, tetapi saya mempunyai berita baik: projek anda sedia untuk dijalankan sekarang.

Cuba ini:

cd someco-mvn-tutorial-repo
ujian integrasi mvn -Pamp-to-war

Jika anda melihat pada output, anda akan melihat bahawa Maven memuat turun semua yang diperlukan untuk menyusun projek, mencipta AMP, menggunakan AMP ke Alfresco WAR, menggunakan Alfresco WAR ke pelayan Tomcat terbenam dan menjalankannya. Akhirnya anda akan melihat sesuatu yang serupa dengan:

15-01-2014 18:01:19,339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Menjumpai 1 modul.
15-01-2014 18:01:19,480 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Memasang modul 'someco-mvn-tutorial-repo' versi 1.0.1401151758.

Ini bermakna modul projek anda telah dihasilkan dan diiktiraf oleh pelayan Alfresco.

Selepas anda melihat:

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

Anda sepatutnya boleh membuka:

http://localhost:8080/alfresco

Dan log masuk menggunakan "admin" dan "admin".

Apabila anda selesai mengaguminya, kembali ke tetingkap tempat anda menjalankan perintah Maven anda dan tekan ctrl-c untuk menutup pelayan.

Jika anda mendapat ralat di luar ingatan semasa menjalankan ujian integrasi, anda mungkin perlu memasukkan beberapa parameter JVM untuk pilihan memori dalam Maven. Satu penyelesaian yang mungkin adalah untuk menetapkan pembolehubah persekitaran MAVEN_OPTS. Sebagai contoh, saya menetapkan nilai saya kepada:

-Xmx1024M -XX:MaxPermSize=512m

Gunakan MAVEN_OPTS untuk menetapkannya secukupnya supaya anda tidak melihat ralat limpahan memori.

Apa itu?

Anda telah meminta Maven menjalankan "ujian-integrasi" untuk menggunakan profil "amp-to-war". Ini membawa kepada membina projek, menggunakan ia sebagai AMP kepada WAR Alfresco yang baru, dan menjalankan pelayan Tomcat terbenam. Selepas itu, anda boleh log masuk ke klien Alfresco Explorer lama dan bekerja dengan repositori, menguji modul anda.

Jika anda melihat dalam direktori sasaran, anda akan melihat AMP yang telah dibuat dan kemudiannya digunakan dalam WAR Alfresco. Dalam kes saya ia dipanggil "someco-mvn-tutorial-repo.amp". Fail ini adalah perkara yang perlu anda berikan kepada pasukan IT anda jika anda bersedia untuk menggunakan perubahan tahap repositori anda pada pelayan Alfresco secara langsung.

Perintah Binaan Lain

Anda mungkin tidak sentiasa perlu memulakan pelayan Alfresco dan membiarkannya berjalan. Jika anda hanya mahu membina projek, menjalankan ujian unit dan pakej AMP, anda boleh lakukan:

pakej mvn

Jika anda ingin memasang AMP di dalam repositori Maven tempatan anda, jalankan:

pemasangan mvn

Anda mungkin perasan bahawa projek itu termasuk ujian unit mudah secara lalai. Secara lalai, Maven akan menjalankan ujian unit secara automatik dalam projek anda. Anda boleh melihat ini dalam output konsol:

------------------------------------------------- -----
 UJIAN
------------------------------------------------- -----
Menjalankan org.alfresco.demoamp.test.DemoComponentTest

Amalan yang baik untuk memastikan projek anda sentiasa menyertakan ujian unit dan menjalankannya setiap kali anda membina. Banyak organisasi menggunakan alatan CI (Continuous Integration) yang bergantung pada ujian ini. Jika atas sebab tertentu anda tidak mahu menjalankan ujian, anda boleh melangkaunya, seperti ini:

mvn install -DskipTests=true

Jika anda ingin mengalih keluar semua bahan terkumpul yang dibuat oleh Maven dan memulakan semula, anda boleh menjalankan:

mvn bersih

Jika anda juga ingin memadam pangkalan data terbina dalam, kandungan Alfresco yang disimpan, indeks dan log yang sentiasa dibuat semasa menjalankan ujian pelayan, anda boleh menjalankan:

mvn bersih -Purge

Kini anda tahu cara membuat projek Alfresco baharu menggunakan templat dan mempunyai asas membina dengan atau tanpa ujian. Langkah seterusnya ialah belajar cara bekerja dengan projek anda dalam IDE.

Pembalakan

Fail log4j.properties terletak dalam direktori modul, fail log4j.properties termasuk

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

Anda mungkin mahu menggantikan ini dengan tetapan anda sendiri yang sesuai dengan struktur pakej anda.

Untuk mengkonfigurasi module.log.level anda boleh melakukan ini apabila anda memulakan Maven, seperti ini:

mvn install -Dmodule.log.level=DEBUG

Atau anda boleh mengedit pom.xml dan menambah ini pada sifat, seperti ini:

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

Jika anda menukar pom.xml, maka AMP akan menerima tetapan ini apabila dibuat, dan seterusnya, WAR di mana AMP digunakan akan menulis log. Ini mungkin (atau mungkin tidak) yang anda mahukan. Jika anda tidak pasti, mungkin lebih baik untuk menetapkan nilai menggunakan baris arahan kerana ini akan menghalang anda daripada mengacaukan nilai dalam AMP anda secara tidak sengaja.

Arkitek ECM


Kerja ini dilesenkan di bawah Creative Commons Attribution-ShareAlike 3.0 Unported License . Bahagian 2 =>
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION