JavaRush /Blog Java /Random-PL /Pierwsze kroki z Maven Alfresco SDK, część 2
CynepHy6
Poziom 34
Великий Новгород

Pierwsze kroki z Maven Alfresco SDK, część 2

Opublikowano w grupie Random-PL

Pierwsze kroki z Alfresco Maven SDK

Jeff Potts, styczeń 2014 <= ​​Część 1
  • Pracujemy z Twoim projektem w środowisku IDE
  • Zrozumienie struktury projektu
  • Stworzenie projektu przystosowanego do dostępu Share
  • Ogólne zależności projektu
  • Cel WOJNY
  • Spróbujmy tego: Tworzenie projektu Share przy użyciu archetypu
  • Zrozumienie struktury katalogów Share Access
  • Rozpoczęcie wewnętrznych testów na Share
  • Zarządzanie zależnościami
  • Inne tematy do samodzielnego studiowania
  • Gdzie znaleźć więcej informacji

Pracujemy z Twoim projektem w środowisku IDE

Nie jest to konieczne, ale wiele osób woli pracować w IDE podczas konfigurowania Alfresco. Każde IDE to zrobi, ale jednym z najpopularniejszych jest Eclipse, więc zobaczmy, jak to działa.
Używam wersji Kepler środowiska Eclipse Java EE IDE dla programistów internetowych. Posiada wbudowaną obsługę Mavena.
Aby otworzyć utworzony projekt, wykonaj następujące czynności:
  • Plik, import, Maven, istniejące projekty Maven. Kliknij Następny.
    Pierwsze kroki z Maven Alfresco SDK część 2 - 1
  • Określ katalog zawierający katalog Someco-mvn-tutorial-repo. Eclipse sprawdzi ten katalog i wyświetli Twój projekt na liście projektów. Upewnij się, że pole wyboru obok nazwy projektu jest zaznaczone i kliknij Dalej.
    Pierwsze kroki z Maven Alfresco SDK część 2 - 2
  • Eclipse wyświetli ustawienia panelu wtyczek Maven. Możesz go teraz bezpiecznie zignorować. Kliknij Zakończ.
    Pierwsze kroki z Maven Alfresco SDK, część 2–3
Projekt został teraz zaimportowany do obszaru roboczego Eclipse.
W panelu Znaczniki możesz zobaczyć listę problemów z Mavenem z informacją: „Wykonanie wtyczki nie jest objęte konfiguracją cyklu życia”.
Maven ma problemy z wtyczkami Maven ma problemy z wtyczkami (wersja ustawiona)
Aby to naprawić:
  1. Kliknij błąd prawym przyciskiem myszy i wybierz opcję „Szybka naprawa”.
  2. Wybranie opcji „Trwale oznacz wersję zestawu celów w pom.xml jako ignorowaną w kompilacji Eclipse”. Gotowy.
  3. Wybierz lokalizację, w której znajduje się Twój POM (moja to com.someco: Someco-mvn-tutorial-repo: 1.0-SNAPSHOT) i kliknij OK.
Po przebudowaniu projektu może pojawić się jeden z najnowszych problemów „Konfiguracja projektu nie jest aktualna z pom.xml”. Dla korekty:
  1. Kliknij projekt prawym przyciskiem myszy i wybierz Maven, Aktualizuj projekt.
  2. Upewnij się, że projekt jest wybrany i kliknij OK.
Teraz Eclipse jest prawdopodobnie szczęśliwy, a jedyne błędy powinny wynikać z ostrzeżeń o niektórych nieużywanych importach Java.

Zrozumienie struktury projektu

Struktura katalogów twojego projektu jest trochę przyjemniejsza do eksploracji w twoim IDE. Zobaczmy, co tu mamy.
  • pom.xml W katalogu głównym projektu znajduje się plik pom.xml. Mówi Mavenowi wszystko, co musi wiedzieć o Twoim projekcie. Czy pamiętasz jakieś ustawienia, o których zapomniałeś podczas tworzenia projektu z szablonu? Tutaj możesz dokonać zmian w ustawieniach. Przykładowo wersja 1.1.1 archetypu pozwala na współpracę z Alfresco Community Edition w wersji 4.2.e. Jeśli chcesz pracować z inną wersją - po prostu zmień kilka właściwości i powiedz Mavenowi, aby je zaktualizował, a on zajmie się resztą.
  • src/main/java W tym miejscu powinieneś stworzyć własne pakiety, aby uporządkować swój kod Java. Są tu takie rzeczy, jak niestandardowe klasy wykonawców akcji, niestandardowe zachowania, kontrolery Java dla skryptów internetowych. Jeśli nie wiesz, o co w tym wszystkim chodzi, nie martw się, tutaj znajdziesz tutoriale . Pliki te zostaną ostatecznie umieszczone w pliku JAR. Kiedy AMP jest zainstalowany w Alfresco WAR, plik JAR będzie znajdować się w WEB-INF/lib .
  • src/test Wszystko w src/test jest związane z wykonaniem testów. Same testy jednostkowe znajdują się w src/test/Java . Wszelkie zasoby potrzebne tym klasom będą znajdować się w src/test/resources. Wewnątrz src/test/properties/local zobaczysz plik alfresco-global.properties . Jeśli wiesz już cokolwiek o Alfresco, wiesz, że służy ono do konfiguracji serwera Alfresco. W tym przypadku służy to wyłącznie do uruchomienia serwera wbudowanego w celach testowych.
  • src/main/amp Wszystko inne znajduje się gdzieś w tej części projektu. Struktura AMP jest tak dobrze udokumentowana, że ​​nie chcę jej tutaj powielać. Wskażę tylko główne punkty:
    • Plik module.properties informuje Alfresco o tym, co musi wiedzieć o AMP, np. o jego identyfikatorze, wersji, minimalnej i maksymalnej wersji Alfresco wymaganej do uruchomienia AMP oraz wszelkich innych AMP z tymi samymi zależnościami.
    • Katalog config/alfresco/module/someco-mvn-tutorial-repo jest sercem AMP. Miejsce, w którym umieścisz konfiguracje plików Spring XML, model zawartości plików XML i konfigurację interfejsu użytkownika. Jak zobaczysz później, wolę oddzielić podkatalogi dla każdej z tych rzeczy.
    • Jeśli Twój moduł zawiera skrypty internetowe lub przepływy pracy, nie są one zawarte w katalogu modułów. Zamiast tego znajdują się one w config/alfresco/extension/templates/webscripts i config/alfresco/extension/workflows .
    • Twój moduł może zawierać zasoby klienta, które należy wdrożyć w katalogu głównym aplikacji internetowej. Znajdują się one w src/main/amp/web w katalogach css, jsp, scripts i image.
Powinieneś sprawdzić cały projekt w kontroli źródła. Możesz skonfigurować swojego klienta kontroli wersji tak, aby ignorował katalog docelowy i katalog alf_data_dev.
Teraz rozumiesz, jak utworzyć projekt dla ustawień na poziomie repozytorium. Przyjrzyjmy się poziomowi udostępniania. W ramach tego pokażę kolejną opcję tworzenia projektu bez wychodzenia z Eclipse.

Stworzenie projektu przystosowanego do dostępu Share

Po pierwsze musisz zrozumieć, że struktura projektu tworzonego na poziomie repozytorium jest dokładnie taka sama jak w przypadku projektu dla dostosowanej warstwy dostępu Share. W przyszłości Alfresco Maven SDK projekt Share będzie wyróżniać dwie rzeczy: zostaną wbudowane zależności projektu i AMP WAR.

Ogólne zależności projektu

Zatrzymajmy się na chwilę i porozmawiajmy o zarządzaniu zależnościami. W tej chwili implementacja jest taka, że ​​domyślnie skonfigurowany archetyp w projekcie pom.xml wykorzystuje zależności artefaktu repozytorium alfresco. W projektach współdzielonych nie ma tej zależności. Faktem jest, że wiele projektów współdzielonych w ogóle nie używa języka Java. Zmodyfikujmy teraz plik pom.xml i usuńmy zależności repozytorium alfresco. Spowoduje to, że komponenty demonstracyjne i powiązane z nimi klasy testowe wygenerują błąd podczas kompilacji. Można je usunąć.

Cel WOJNY

Kolejną rzeczą wyróżniającą projekt Share jest WAR, w której wdrożony jest AMP. Zamiast WAR na świeżym powietrzu, tutaj musisz wdrożyć Udostępnij WAR. Można to skonfigurować we właściwości alfresco.client.war w pliku pom.xml. Domyślnie jest to ustawione na „na świeżym powietrzu”. W przypadku projektu Share musisz zastąpić go słowem „share”.

Spróbujmy tego: Tworzenie projektu Share przy użyciu archetypu

Utwórzmy nowy projekt z Ustawieniami ogólnymi. Możesz przejść do wiersza poleceń i uruchomić to samo polecenie archetype, co poprzednio, z wyłączeniem nowego artifactId, a następnie zmienić właściwość alfresco.client.war na „share”. Jeśli nie używasz Eclipse, zrób to teraz i pomiń następną sekcję.
Inną opcją jest skonfigurowanie Eclipse tak, aby można było utworzyć nowy projekt Alfresco przy użyciu pakietu Alfresco Maven SDK bez opuszczania IDE. Zróbmy to.
  1. Plik, Nowy projekt Maven.
  2. Wybierz katalog zawierający katalog projektu „repo” i kliknij Dalej.
    Pierwsze kroki z Maven Alfresco SDK, część 2–4
  3. Klikamy Konfiguruj i możemy dodać katalog Alfresco do listy.
    Pierwsze kroki z Maven Alfresco SDK, część 2–5
  4. Kliknij opcję Dodaj zdalny katalog
  5. Wybierz „https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml” jako plik katalogu. Wybierz opis „Archetypy na świeżym powietrzu”. Następnie kliknij OK i ponownie OK bliżej panelu Preferencje.
    Pierwsze kroki z Maven Alfresco SDK, część 2–6
  6. Teraz wybierz w katalogu „Archetypy Alfresco”, a na liście zobaczysz kilka archetypów.
  7. Wybierz „org.alfresco.maven.archetype”, a w filtrze pojawią się te same dwa archetypy, co na początku tutoriala.
  8. Wybierz archetyp wzmacniacza alfresco i kliknij Dalej.
    Pierwsze kroki z Maven Alfresco SDK część 2–7
  9. Wybierz „com.someco” dla groupId, „someco-mvn-tutorial-share” jako artifactId i zmień alfresco_target_amp_client_war na „share”. Kliknij Zakończ.
    Pierwsze kroki z Maven Alfresco SDK, część 2–8
Twój projekt Share znajduje się teraz w obszarze roboczym. Następnym razem, gdy utworzysz nowy projekt przy użyciu archetypu, zajmie to nieco mniej kroków, ponieważ nie będziesz musiał dodawać katalogu.

Zrozumienie struktury katalogów Share Access

Jak wspomniałem wcześniej, struktura tego projektu jest dokładnie taka sama jak naszego projektu repo. Jedyna różnica polega na tym, że w projekcie repo takie rzeczy jak skrypty internetowe znajdują się w src/main/amp/config/alfresco/extension/templates/webscripts.W projekcie General będą one w src/main/amp/config/alfresco /web-extension/site-webscripts.

Rozpoczęcie wewnętrznych testów na Share

Często będziesz pracować na obu poziomach ustawień jednocześnie. Twój poziom ogólny potrzebuje repozytorium wiadomości. Jednym ze sposobów, aby to zrobić, jest powiedzenie Mavenowi, aby rozpoczął projekt repo za pomocą:
cd Someco-mvn-tutorial-repo
test integracji mvn -Pamp-to-war
A następnie uruchom projekt Share, używając:
cd Someco-mvn-tutorial-share
test integracji mvn -Pamp-to-war -Dmaven.tomcat.port=8081
Gdy oba serwery zostaną uruchomione, możesz otworzyć http://localhost:8081/share i zalogować się, aby przetestować moduł.

Zarządzanie zależnościami

Fajną rzeczą w Apache Maven jest to, że zarządza zależnościami twojego projektu za Ciebie. Wszystko, co musisz zrobić, to powiedzieć o nich Mavenowi, konfigurując plik pom.xml. Domyślnie zestaw Alfresco Maven SDK tworzy dwie zależności dla Twojego projektu: repozytorium alfresco i junit.
Jak pisałem wcześniej projekt Alfresco Share nie jest zależny od repozytorium Alfresco więc dla projektu Someco-mvn-tutorial-share te zależności można usunąć. Ale co, jeśli chcę umieścić w moim projekcie Share elementy Java, takie jak skrypty internetowe oparte na Javie? W tym przypadku musimy dodać zależności.
Skrypty internetowe mogą działać na dowolnym poziomie. Jeśli w projekcie repo napiszesz skrypty internetowe oparte na Javie, klasa zostanie zbudowana, ponieważ zależności artefaktu repozytorium alfresco zależą z kolei od artefaktu spring-webscripts. Możesz to zobaczyć, jeśli otworzysz hierarchię zależności w Eclipse w pliku pom.xml:
Hierarchia zależności w Eclipse
Hierarchia zależności w Eclipse Inna opcja. Możesz zobaczyć hierarchię zależności, uruchamiając:
zależność mvn: lista
Aby więc dodać skrypty internetowe oparte na Javie do projektu Share, musimy dodać skrypty spring-webscript jako zależność. Możesz to zrobić, edytując plik pom.xml w następujący sposób:
<zależność>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>wiosenne skrypty internetowe</artifactId>
    <wersja>1.2.0-M14</wersja>
    <scope>pod warunkiem</scope>
</zależność>
Teraz skrypty internetowe oparte na Javie będą mogły znaleźć swoją klasę nadrzędną - DeclarativeWebScript.
Być może zastanawiasz się, skąd wiedziałeś, że klasa DeclarativeWebScript została uwzględniona w artefakcie spring-webscripts. Cóż, na przykład po znalezieniu go wchodząc na stronę http://artifacts.alfresco.com . Możesz wyszukiwać według klas, a zostaną wyświetlone wszystkie artefakty, które ją zawierają.

Inne tematy do samodzielnego studiowania

Teraz wiesz, jak używać pakietu Alfresco Maven SDK do tworzenia projektów oraz jako repozytorium Alfresco i konfigurować Alfresco Share. Jeśli dopiero zaczynasz przygodę z programowaniem Alfresco, mam nadzieję, że zgodzisz się, że naprawdę łatwo jest przygotować projekt na początek. Jeśli masz już okazję zapoznać się z Alfresco, ale nadal używasz starych pakietów SDK, mam nadzieję, że zmotywuje Cię to do przejścia na nowy SDK w celu tworzenia AMP.
Istnieje wiele tematów, które nie zostały omówione w tym samouczku. Zostawiam je do sprawdzenia według własnego uznania. Tutaj jest kilka z nich:
  • Zestaw Alfresco Maven SDK obsługuje dynamiczne przeładowywanie klas, gdy jest używany w połączeniu z narzędziem o nazwie JRebel .
  • W tym samouczku omówimy archetyp AMP. Ale Alfresco Maven SDK zawiera inny archetyp zwany All-in-One. Ten archetyp zapewnia kompletną instalację Alfresco, w tym SOLR.
  • Alfresco Maven SDK jest obsługiwany zarówno w wersji Community, jak i Enterprise Edition. Jeśli potrzebujesz pomocy przy uzyskiwaniu dostępu do artefaktów w wersji Enterprise, skontaktuj się z pomocą techniczną Alfresco.

Gdzie znaleźć więcej informacji

<= Część 1
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION