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

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

Opublikowano w grupie Random-PL

Pierwsze kroki z Alfresco Maven SDK

Jeff Potts, styczeń 2014, część 2 =>
  • Wstęp
  • Podstawowe koncepcje
  • Apache Mavena
  • Pakiety modułowe Alfresco (AMP)
  • Zestaw SDK Alfresco Maven
  • Co możesz powiedzieć o starym pakiecie SDK opartym na Ant?
  • Twój pierwszy projekt
  • Uruchommy to
  • Co to było?
  • Inne polecenia kompilacji
  • Logowanie

Wstęp

Ten tutorial został stworzony dla tych osób, które muszą w jakiś sposób skonfigurować Alfresco w projekcie. I dlatego w pierwszej chwili myślisz: „Co to jest?!” Ale w końcu dowiesz się:

  • Jak stworzyć projekt Alfresco od podstaw przy użyciu Alfresco Maven SDK
  • Co powinno się stać w zależności od ustawień
  • Jak utworzyć i uruchomić test
  • Jak stworzyć artefakt nadający się do osadzenia lub udostępnienia społeczności

Ten samouczek należy potraktować jako punkt wyjścia, zanim przejdziesz do bardziej szczegółowego poznania takich zagadnień, jak modelowanie treści, dostosowywanie akcji i zachowań, dodatkowe przepływy pracy lub skrypty internetowe.

Zanim zaczniemy, krótka dygresja: prawie zawsze istnieje wiele alternatywnych ścieżek rozwiązania. W tym samouczku poprowadzę Cię w najprostszy i bezpośredni sposób, bezpieczną trasę, która pomoże Ci szybciej to rozgryźć. Później możesz zmienić pewne rzeczy lub wybrać inne trasy, jeśli chcesz.

Podstawowe koncepcje.

Nie musisz wiedzieć zbyt wiele o Mavenie, Alfresco ani o tym, dlaczego ten SDK jest potrzebny, zanim zaczniesz go używać, ale pewna wiedza może w pewnym sensie pomóc, więc pozwól, że szybko przeprowadzę Cię przez podstawowe pojęcia.

Apache Mavena

Apache Maven to narzędzie do zarządzania kompilacjami. Ma wiele funkcji, ale główną z nich jest to, że oszczędza czas na ustalaniu, na jakich zależnościach (i zależnościach zależności) opiera się Twój projekt. Maven może pobrać i zapisać w pamięci podręcznej te zależności. Jeśli kiedykolwiek zastanawiałeś się, który plik JAR następuje po którym pliku JAR, przydatność takiego narzędzia jest oczywista.

Pakiety modułowe Alfresco (AMP)

AMP to plik ZIP ze strukturą katalogów zgodną z pewnymi konwencjami. Pliki AMP służą do łatwego udostępniania i wdrażania ustawień na platformie Alfresco. Jeśli Twój projekt wymaga utworzenia niestandardowych ustawień na poziomie repozytorium (aplikacja internetowa/alfresco), utwórz „repo” AMP. Jeśli Twój projekt wymaga utworzenia ustawień na poziomie udostępniania (aplikacja internetowa/udostępnienie), tworzysz „udostępniany” AMP. To dość typowe dla projektu, że gdy wymagane są zmiany na obu poziomach, tworzysz dwa AMP.

Zestaw SDK Alfresco Maven

Dzisiejsi programiści są przyzwyczajeni do potężnych frameworków, w których pusty katalog w ciągu minuty zostaje całkowicie zapełniony plikami, a w następnej chwili projekt jest gotowy do uruchomienia. Dlaczego programiści Alfresco mieliby zadowolić się mniej?

Celem SDK opartego na Maven jest stworzenie możliwie najprostszych warunków do rozpoczęcia rozwoju dla Alfresco. SDK składa się z szablonu projektu („archetyp” w terminologii Mavena) i kilku wbudowanych funkcji, które mówią Mavenowi, jak tworzyć AMP i wdrażać je w Alfresco.

Jeśli piszesz własną aplikację niezależnie od Alfresco i Share WARs, to nie potrzebujesz Alfresco Maven SDK. Jeśli jednak masz zamiar napisać kod, który będzie działał w którejkolwiek z tych aplikacji internetowych, najlepszym rozwiązaniem będzie Alfresco Maven SDK.

A co ze starym pakietem SDK opartym na Ant?

Alfresco od samego początku dostarczało ten pakiet SDK do pobrania. SDK zawierał kontener ZIP z niezbędnymi zależnościami do kompilacji, kodem źródłowym, dokumentacją i przykładowymi projektami Eclipse. W tych przykładach użyto kreatora opartego na Ancie.

Nie było nic złego w tym podejściu, ale platformy programistyczne ewoluowały, a zestawy SDK firmy Ant nie ewoluowały wraz z nimi. Na dzień dzisiejszy część tych przykładów jest nieaktualna (na przykład natywne interfejsy API usług internetowych lub interfejs użytkownika Alfresco Explorer), a nie ma wystarczającej liczby przykładów dla niezwykle ważnych części, takich jak CMIS, skrypty internetowe i zaawansowane przepływy pracy wykorzystujące Activiti.

Oprócz przestarzałych przykładów wymagany jest stary pakiet Ant SDK. Deweloperzy wykonują za dużo pracy. Dzięki Alfresco Maven SDK nie musisz nawet niczego pobierać - po prostu tworzysz swój projekt i zaczynasz kodować.

Masz teraz wysoki poziom zrozumienia Apache Maven, AMP i Alfresco Maven SDK. Czas zobaczyć to wszystko w akcji

Twój pierwszy projekt

Pokażę Ci, jak łatwo jest rozpocząć programowanie dla Alfresco przy użyciu Alfresco Maven SDK. Zanim zaczniemy, muszę przypomnieć, że masz zainstalowany JDK 1.7, a także Apache Maven 3. Nie musisz pobierać niczego więcej. Poważnie. Nawet na świeżym powietrzu.

  1. Utwórz pusty katalog. Wkrótce utworzymy w nim kilka dodatkowych katalogów.
  2. Teraz utwórzmy pusty projekt. Załóżmy, że chcesz utworzyć coś, co wdrożysz w repozytorium Alfresco, na przykład niestandardowy model zawartości, kilka niestandardowych akcji reguł, nowy zestaw skryptów internetowych lub niektóre procesy biznesowe Activiti. To naprawdę nie ma znaczenia. Aby utworzyć nowy projekt, uruchom polecenie:
    archetyp mvn:generuj\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven wykona trochę pracy i ostatecznie poprosi Cię o wybranie „archetypu”. Twój podstawowy wybór z bibliotek szablonów projektów. Dostępne są tutaj dwa. Jeden nazywany jest „archetypem wzmacniacza na świeżym powietrzu”, a drugi „archetypem wzmacniacza na świeżym powietrzu”. Naszym celem jest stworzenie AMP, który można wdrożyć w Alfresco, więc pierwszy punkt jest tym, czego potrzebujemy. Wpisz 1 i naciśnij Enter.
  4. Maven poprosi Cię teraz o konkretną wersję szablonu, na której będziesz opierał swój projekt. Obecnie najnowsza wersja to 1.1.1, która jest piątą opcją na liście, więc naciśnij 5 i Enter.
  5. Maven pyta o groupId. Jest podobny do „pakietu Java”. Moje przykłady zawsze opierają się na tym, że pracuję w fikcyjnej firmie o nazwie SomeCo, dlatego wpiszę tutaj „com.someco”. Wpisz coś, co ma dla Ciebie sens i naciśnij Enter.
  6. Następny jest identyfikator artefaktu. Potraktuj to jako nazwę swojego projektu. Stanie się on również Twoim identyfikatorem AMP, więc wybierz coś specjalnego. Powinieneś także dodać linię „-repo” do swojego artefaktu, ponieważ moduł ten zostanie wbudowany w repozytorium. Nazwę moje „someco-mvn-tutorial-repo” i naciśnij Enter.

  7. W tym momencie Maven pokaże Ci wprowadzone wartości, doda inne wartości domyślne i poprosi o potwierdzenie wyboru. Jeśli chcesz coś zmienić, możesz wybrać „N”, a następnie wprowadzić zmiany lub „Y”, aby kontynuować. W razie potrzeby zawsze możesz zmienić te wartości później. Naciśnij „Y”, a następnie Enter.

Maven wykona teraz trochę pracy. Po zakończeniu otrzymasz następujące informacje:

  • Projekt, którego struktura ma wspierać Twój rozwój Alfresco
  • Domyślne pliki konfiguracyjne
  • Minimalny kod Java do dodatkowych testów jednostkowych w celu sprawdzenia, czy wszystko działa
  • Konfiguracja wymagana do uruchomienia lokalnej instancji Alfresco wymaganej do testowania
  • Domyślny plik XML POM (Project Object Model), który informuje Mavena, jakie zależności ma Twój projekt

Uruchommy to

Jeszcze nic nie przesłałeś. Jeszcze niczego nie edytowałeś. Jedyne, co zrobiłeś, to kazałeś Mavenowi stworzyć projekt w oparciu o szablon, ale mam świetną wiadomość: Twój projekt jest już gotowy do uruchomienia.

Spróbuj tego:

cd Someco-mvn-tutorial-repo
test integracji mvn -Pamp-to-war

Jeśli spojrzysz na dane wyjściowe, zobaczysz, że Maven pobiera wszystko, co potrzebne do skompilowania projektu, utworzenia AMP, wdrożenia AMP w Alfresco WAR, wdrożenia Alfresco WAR na wbudowanym serwerze Tomcat i uruchomienia go. Ostatecznie zobaczysz coś podobnego do:

2014-01-15 18:01:19,339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Znaleziono 1 moduł(y).
2014-01-15 18:01:19,480 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Instalowanie modułu „someco-mvn-tutorial-repo” w wersji 1.0.1401151758.

Oznacza to, że moduły Twojego projektu zostały wygenerowane i rozpoznane przez serwer Alfresco.

Po zobaczeniu:

16 stycznia 2014 8:38:20 org.apache.coyote.AbstractProtocol start INFORMACJE: Uruchamianie protokołu Handler ["http-bio-8080"]

Powinieneś być w stanie otworzyć:

http://localhost:8080/alfresco

I zaloguj się używając „admin” i „admin”.

Kiedy skończysz się nim zachwycać, wróć do okna, w którym uruchomiłeś polecenie Maven i naciśnij ctrl-c, aby zamknąć serwer.

Jeśli podczas testu integracji pojawi się błąd braku pamięci, może być konieczne wprowadzenie niektórych parametrów JVM dla opcji pamięci w Maven. Jednym z możliwych rozwiązań jest ustawienie zmiennej środowiskowej MAVEN_OPTS. Na przykład ustawiam moje wartości na:

-Xmx1024M -XX:MaxPermSize=512m

Użyj MAVEN_OPTS, aby ustawić to na tyle, aby nie pojawiały się błędy przepełnienia pamięci.

Co to było?

Poprosiłeś Mavena o uruchomienie „testu integracji”, aby użyć profilu „amp-to-war”. Doprowadziło to do zbudowania projektu, wdrożenia go jako AMP w nowej grze Alfresco WAR i uruchomienia wbudowanego serwera Tomcat. Następnie można było zalogować się do starego klienta Alfresco Explorer i pracować z repozytorium, testując moduł.

Jeśli zajrzysz do katalogu docelowego, zobaczysz AMP, który został utworzony, a następnie wdrożony w Alfresco WAR. W moim przypadku nazywa się to „someco-mvn-tutorial-repo.amp”. Ten plik powinieneś przekazać swojemu zespołowi IT, jeśli chcesz zastosować zmiany na poziomie repozytorium na działającym serwerze Alfresco.

Inne polecenia budowania

Nie zawsze konieczne będzie uruchomienie serwera Alfresco i pozostawienie go uruchomionego. Jeśli chcesz po prostu zbudować projekt, uruchomić test jednostkowy i spakować AMP, możesz:

pakiet mvn

Jeśli chcesz zainstalować AMP w lokalnym repozytorium Maven, uruchom:

instalacja mvn

Być może zauważyłeś, że projekt domyślnie zawiera prosty test jednostkowy. Domyślnie Maven automatycznie uruchomi testy jednostkowe w Twoim projekcie. Możesz to zobaczyć na wyjściu konsoli:

-------------------------------------------------- -----
 TESTY
-------------------------------------------------- -----
Uruchamiam org.alfresco.demoamp.test.DemoComponentTest

Dobrą praktyką jest upewnienie się, że projekt zawsze zawiera testy jednostkowe i uruchamia je przy każdej kompilacji. Wiele organizacji korzysta z narzędzi CI (Continious Integration), które opierają się na tych testach. Jeśli z jakiegoś powodu nie chcesz uruchamiać testów, możesz je pominąć, na przykład:

mvn install -DskipTests=true

Jeśli chcesz usunąć wszystkie skompilowane rzeczy, które tworzy Maven i zacząć od nowa, możesz uruchomić:

mvn czysty

Jeśli chcesz także usunąć wbudowaną bazę danych, zapisaną zawartość Alfresco, indeksy i dzienniki, które są zawsze tworzone podczas testowania serwera, możesz uruchomić:

mvn clean – Oczyść

Teraz wiesz, jak utworzyć nowy projekt Alfresco przy użyciu szablonu i znasz podstawy budowania z testami lub bez. Następnym krokiem jest nauczenie się pracy z projektem w IDE.

Logowanie

Plik log4j.properties znajduje się w katalogu modułów, który zawiera plik log4j.properties

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

Prawdopodobnie będziesz chciał zastąpić to własnymi ustawieniami, które pasują do struktury Twojego pakietu.

Aby skonfigurować moduł.log.level, możesz to zrobić po uruchomieniu Mavena w następujący sposób:

mvn install -Dmodule.log.level=DEBUG

Możesz też edytować pom.xml i dodać to do właściwości, coś takiego:

<module.log.level>DEBUGOWANIE</module.log.level>

Jeśli zmienisz plik pom.xml, AMP otrzyma te ustawienia po utworzeniu, a następnie WAR, w którym wdrożono AMP, zapisze dzienniki. To może (ale nie musi) być tym, czego chcesz. Jeśli nie jesteś pewien, lepszym rozwiązaniem może być ustawienie wartości za pomocą wiersza poleceń, ponieważ zapobiegnie to przypadkowemu pomyleniu wartości w AMP.

Architekt ECM


Ta praca jest objęta licencją Creative Commons Uznanie autorstwa-Na tych samych warunkach 3.0 Unported . Część 2 =>
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION