JavaRush /Java-Blog /Random-DE /Erste Schritte mit Maven Alfresco SDK Teil 1
CynepHy6
Level 34
Великий Новгород

Erste Schritte mit Maven Alfresco SDK Teil 1

Veröffentlicht in der Gruppe Random-DE

Erste Schritte mit dem Alfresco Maven SDK

Jeff Potts, Januar 2014 Teil 2 =>
  • Einführung
  • Grundlegendes Konzept
  • Apache Maven
  • Alfresco Modular Packages (AMP)
  • Alfresco Maven SDK
  • Was können Sie über das alte Ant-basierte SDK sagen?
  • Dein erstes Projekt
  • Lass es uns starten
  • Was war das?
  • Andere Build-Befehle
  • Protokollierung

Einführung

Dieses Tutorial wurde für diejenigen erstellt, die Alfresco in irgendeiner Weise für ein Projekt konfigurieren müssen. Und so denkt man zunächst: „Was ist das?!“ Aber am Ende werden Sie lernen:

  • So erstellen Sie ein Alfresco-Projekt von Grund auf mit dem Alfresco Maven SDK
  • Was sollte je nach Ihren Einstellungen passieren?
  • So erstellen Sie einen Test und führen ihn aus
  • So erstellen Sie ein Artefakt, das zum Einbetten oder Teilen mit der Community geeignet ist

Dieses Tutorial sollte als Ausgangspunkt betrachtet werden, bevor Sie detailliertere Informationen zu Themen wie Inhaltsmodellierung, Anpassen von Aktionen und Verhalten, zusätzlichen Workflows oder Webskripts erhalten.

Bevor wir beginnen, ein kurzer Exkurs: Es gibt fast immer viele alternative Lösungswege. In diesem Tutorial werde ich Sie auf die einfachste und direkteste Weise auf einen sicheren Weg führen, der Ihnen hilft, es schneller herauszufinden. Später können Sie einige Dinge ändern oder andere Routen erkunden, wenn Sie möchten.

Grundlegendes Konzept.

Sie müssen nicht allzu viel über Maven, Alfresco wissen oder wissen, warum dieses SDK benötigt wird, bevor Sie es verwenden, aber einige Kenntnisse können in mancher Hinsicht hilfreich sein, also lassen Sie mich Sie schnell durch die Grundkonzepte führen.

Apache Maven

Apache Maven ist ein Build-Management-Tool. Es verfügt über viele Funktionen, aber das Wichtigste ist, dass es Zeit spart, herauszufinden, auf welche Abhängigkeiten (und Abhängigkeiten von Abhängigkeiten) Ihr Projekt angewiesen ist. Maven kann diese Abhängigkeiten für Sie abrufen und zwischenspeichern. Wenn Sie schon einmal versucht haben, herauszufinden, welche JAR-Datei nach welcher JAR-Datei kommt, dann ist der Nutzen eines solchen Tools offensichtlich.

Alfresco Modular Packages (AMP)

AMP ist eine ZIP-Datei mit einer Verzeichnisstruktur, die bestimmten Konventionen folgt. AMP-Dateien werden zum einfachen Teilen und Bereitstellen von Einstellungen auf der Alfresco-Plattform verwendet. Wenn Ihr Projekt benutzerdefinierte Einstellungen auf Repo-Ebene (Web-App/Alfresco) erstellen muss, erstellen Sie ein AMP-„Repo“. Wenn Ihr Projekt Einstellungen auf der Freigabeebene (Web-App/Freigabe) erstellen muss, erstellen Sie ein „Freigabe“-AMP. Es ist ganz typisch für ein Projekt, dass man zwei AMPs erstellt, wenn Änderungen auf beiden Ebenen erforderlich sind.

Alfresco Maven SDK

Heutige Programmierer sind an leistungsstarke Frameworks gewöhnt, bei denen ein leeres Verzeichnis in einer Minute vollständig mit Dateien gefüllt ist und Ihr Projekt im nächsten Moment startbereit ist. Warum sollten sich Alfresco-Entwickler mit weniger zufrieden geben?

Ziel des Maven-basierten SDK ist es, möglichst einfache Voraussetzungen für den Start der Entwicklung für Alfresco zu schaffen. Das SDK besteht aus einer Projektvorlage (ein „Archetyp“ in der Maven-Terminologie) und einigen integrierten Funktionen, die Maven mitteilen, wie AMPs erstellt und in Alfresco bereitgestellt werden.

Wenn Sie Ihre eigene Anwendung getrennt von Alfresco und Share WARs schreiben, benötigen Sie das Alfresco Maven SDK nicht. Wenn Sie jedoch Code schreiben möchten, der in einer dieser Webanwendungen ausgeführt wird, ist das Alfresco Maven SDK der richtige Ausgangspunkt.

Was ist mit dem alten Ant-basierten SDK?

Alfresco hat dieses herunterladbare SDK von Anfang an bereitgestellt. Das SDK enthielt einen ZIP-Container mit den notwendigen Abhängigkeiten für Kompilierung, Quellcode, Dokumentation und Beispiel-Eclipse-Projekte. In diesen Beispielen wurde ein Ant-basierter Builder verwendet.

An diesem Ansatz war nichts auszusetzen, aber die Entwicklungsplattformen haben sich weiterentwickelt, und die SDKs von Ant konnten sich nicht mit ihnen weiterentwickeln. Bis heute sind Teile dieser Beispiele veraltet (z. B. native Webservices-APIs oder die Alfresco Explorer-Benutzeroberfläche), und es gibt nicht genügend Beispiele für äußerst wichtige Teile wie CMIS, Webskripte und erweiterte Workflows mit Activiti.

Zusätzlich zu seinen veralteten Beispielen ist das alte Ant SDK erforderlich. Entwickler machen zu viel Arbeit. Mit dem Alfresco Maven SDK müssen Sie nicht einmal etwas herunterladen – Sie erstellen einfach Ihr Projekt und beginnen mit dem Codieren.

Sie verfügen jetzt über ein hohes Maß an Verständnis für Apache Maven, AMP und das Alfresco Maven SDK. Es ist Zeit, alles in Aktion zu sehen

Ihr erstes Projekt

Lassen Sie mich Ihnen zeigen, wie einfach es ist, mit dem Alfresco Maven SDK mit der Entwicklung für Alfresco zu beginnen. Bevor wir beginnen, muss ich Sie daran erinnern, dass JDK 1.7 und Apache Maven 3 installiert sein müssen. Sie müssen nichts anderes herunterladen. Ernsthaft. Sogar im Freien.

  1. Erstellen Sie ein leeres Verzeichnis. Wir werden in Kürze einige zusätzliche Verzeichnisse darin erstellen.
  2. Jetzt erstellen wir ein leeres Projekt. Angenommen, Sie möchten etwas erstellen, das Sie im Alfresco-Repository bereitstellen, beispielsweise ein benutzerdefiniertes Inhaltsmodell, mehrere benutzerdefinierte Regelaktionen, einen neuen Satz von Webskripten oder einige Activiti-Geschäftsprozesse. Es spielt wirklich keine Rolle. Um ein neues Projekt zu erstellen, führen Sie den folgenden Befehl aus:
    mvn-Archetyp:generieren\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven wird einige Arbeiten erledigen und Sie schließlich auffordern, „Archetyp“ auszuwählen. Ihre grundlegende Auswahl aus Projektvorlagenbibliotheken. Hier sind zwei verfügbar. Einer heißt „alfresco-amp-archetype“ und der andere „alfresco-allinone-archetype“. Unser Ziel ist es, ein AMP zu erstellen, das in Alfresco bereitgestellt werden kann. Der erste Punkt ist also das, was wir brauchen. Geben Sie 1 ein und drücken Sie die Eingabetaste.
  4. Maven fragt Sie nun nach einer bestimmten Version der Vorlage, auf der Ihr Projekt basieren soll. Derzeit ist die neueste Version 1.1.1, die fünfte Option in der Liste. Drücken Sie also 5 und die Eingabetaste.
  5. Maven fragt nach der Gruppen-ID. Es ähnelt dem „Java-Paket“. Meine Beispiele basieren immer auf der Tatsache, dass ich bei einem fiktiven Unternehmen namens SomeCo arbeite, daher gebe ich hier „com.someco“ ein. Geben Sie etwas ein, das für Sie sinnvoll ist, und drücken Sie die Eingabetaste.
  6. Als nächstes folgt die Artefakt-ID. Betrachten Sie es als den Namen Ihres Projekts. Dies wird auch Ihre AMP-ID, also wählen Sie etwas Besonderes. Sie sollten Ihrer Artefakt-ID auch die Zeile „-repo“ hinzufügen, da dieses Modul in das Repository integriert wird. Ich nenne meins „someco-mvn-tutorial-repo“ und drücke die Eingabetaste.

  7. An dieser Stelle zeigt Ihnen Maven die von Ihnen eingegebenen Werte an, fügt einige weitere Standardwerte hinzu und fordert Sie auf, Ihre Auswahl zu bestätigen. Wenn Sie etwas ändern möchten, können Sie „N“ auswählen und dann Änderungen vornehmen oder „Y“, um fortzufahren. Sie können diese Werte später bei Bedarf jederzeit ändern. Drücken Sie „Y“ und dann Enter.

Maven wird jetzt einige Arbeiten erledigen. Wenn es fertig ist, erhalten Sie Folgendes:

  • Ein Projekt, das so strukturiert ist, dass es Ihre Alfresco-Entwicklung unterstützt
  • Standardkonfigurationsdateien
  • Minimaler Java-Code für zusätzliche Unit-Tests, um zu überprüfen, ob alles funktioniert
  • Erforderliche Konfiguration zum Ausführen der zum Testen erforderlichen lokalen Alfresco-Instanz
  • Standard-POM-XML-Datei (Project Object Model), die Maven mitteilt, welche Abhängigkeiten Ihr Projekt hat

Lassen wir es laufen

Sie haben noch nichts hochgeladen. Sie haben noch nichts bearbeitet. Sie haben Maven lediglich angewiesen, ein Projekt basierend auf der Vorlage zu erstellen, aber ich habe großartige Neuigkeiten: Ihr Projekt ist jetzt betriebsbereit.

Versuche dies:

cd someco-mvn-tutorial-repo
mvn Integrationstest -Pamp-to-war

Wenn Sie sich die Ausgabe ansehen, werden Sie sehen, dass Maven alles herunterlädt, was zum Kompilieren des Projekts, zum Erstellen des AMP, zum Bereitstellen des AMP im Alfresco WAR, zum Bereitstellen des Alfresco WAR auf dem eingebetteten Tomcat-Server und zum Ausführen erforderlich ist. Irgendwann sehen Sie etwas Ähnliches wie:

15.01.2014 18:01:19.339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] 1 Modul(e) gefunden.
15.01.2014 18:01:19,480 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Modul „someco-mvn-tutorial-repo“ Version 1.0.1401151758 installieren.

Das bedeutet, dass Ihre Projektmodule vom Alfresco-Server generiert und erkannt wurden.

Nachdem Sie Folgendes gesehen haben:

16. Januar 2014 8:38:20 Uhr org.apache.coyote.AbstractProtocol start INFO: ProtocolHandler wird gestartet ["http-bio-8080"]

Sie sollten Folgendes öffnen können:

http://localhost:8080/alfresco

Und melden Sie sich mit „admin“ und „admin“ an.

Wenn Sie damit fertig sind, es zu bewundern, kehren Sie zu dem Fenster zurück, in dem Sie Ihren Maven-Befehl ausgeführt haben, und drücken Sie Strg-C, um den Server herunterzufahren.

Wenn Sie beim Ausführen eines Integrationstests die Fehlermeldung „Nicht genügend Arbeitsspeicher“ erhalten, müssen Sie möglicherweise einige JVM-Parameter für Speicheroptionen in Maven eingeben. Eine mögliche Lösung besteht darin, die Umgebungsvariable MAVEN_OPTS festzulegen. Ich stelle meine Werte zum Beispiel auf:

-Xmx1024M -XX:MaxPermSize=512m

Verwenden Sie MAVEN_OPTS, um es so einzustellen, dass keine Speicherüberlauffehler auftreten.

Was war das?

Sie haben Maven gebeten, „integration-test“ auszuführen, um das Profil „amp-to-war“ zu verwenden. Dies führte dazu, dass das Projekt erstellt, als AMP in einem neuen Alfresco WAR bereitgestellt und der eingebettete Tomcat-Server ausgeführt wurde. Danach konnten Sie sich beim alten Alfresco Explorer-Client anmelden, mit dem Repository arbeiten und Ihr Modul testen.

Wenn Sie im Zielverzeichnis nachsehen, sehen Sie AMP, das in Alfresco WAR erstellt und anschließend bereitgestellt wurde. In meinem Fall heißt es „someco-mvn-tutorial-repo.amp“. Diese Datei sollten Sie Ihrem IT-Team geben, wenn Sie bereit sind, Ihre Änderungen auf Repository-Ebene auf den Live-Alfresco-Server anzuwenden.

Andere Build-Befehle

Möglicherweise müssen Sie den Alfresco-Server nicht immer starten und laufen lassen. Wenn Sie lediglich das Projekt erstellen, einen Komponententest ausführen und AMP verpacken möchten, können Sie Folgendes tun:

mvn-Paket

Wenn Sie AMP in Ihrem lokalen Maven-Repository installieren möchten, führen Sie Folgendes aus:

mvn installieren

Möglicherweise ist Ihnen aufgefallen, dass das Projekt standardmäßig einen einfachen Komponententest enthält. Standardmäßig führt Maven automatisch Komponententests in Ihrem Projekt durch. Sie können dies in der Konsolenausgabe sehen:

-------------------------------------------------- -----
 TESTS
-------------------------------------------------- -----
Ausführen von org.alfresco.demoamp.test.DemoComponentTest

Es empfiehlt sich, sicherzustellen, dass Ihr Projekt immer Komponententests enthält und diese bei jedem Buildvorgang ausführt. Viele Organisationen verwenden CI-Tools (Continuous Integration), die auf diesen Tests basieren. Wenn Sie den Test aus irgendeinem Grund nicht ausführen möchten, können Sie ihn überspringen, etwa so:

mvn install -DskipTests=true

Wenn Sie alle von Maven erstellten kompilierten Inhalte entfernen und von vorne beginnen möchten, können Sie Folgendes ausführen:

mvn sauber

Wenn Sie auch die integrierte Datenbank, gespeicherte Alfresco-Inhalte, Indizes und Protokolle löschen möchten, die beim Ausführen von Servertests immer erstellt werden, können Sie Folgendes ausführen:

mvn clean -Purge

Jetzt wissen Sie, wie Sie mithilfe einer Vorlage ein neues Alfresco-Projekt erstellen und verfügen über die Grundlagen zum Erstellen mit oder ohne Tests. Der nächste Schritt besteht darin, zu lernen, wie Sie mit Ihrem Projekt in der IDE arbeiten.

Protokollierung

Die Datei log4j.properties befindet sich im Modulverzeichnis, die Datei log4j.properties enthält

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

Sie möchten dies wahrscheinlich durch Ihre eigenen Einstellungen ersetzen, die zu Ihrer Paketstruktur passen.

Um module.log.level zu konfigurieren, können Sie dies tun, wenn Sie Maven starten, etwa so:

mvn install -Dmodule.log.level=DEBUG

Oder Sie können pom.xml bearbeiten und dies zu den Eigenschaften hinzufügen, etwa so:

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

Wenn Sie pom.xml ändern, erhält AMP diese Einstellungen beim Erstellen und anschließend schreibt die WAR-Datei, in der AMP bereitgestellt wird, Protokolle. Dies kann (oder auch nicht) das sein, was Sie wollen. Wenn Sie sich nicht sicher sind, ist es möglicherweise besser, die Werte über die Befehlszeile festzulegen, da Sie so verhindern, dass Sie versehentlich die Werte in Ihrem AMP durcheinander bringen.

ECM-Architekt


Dieses Werk ist unter einer Creative Commons Attribution-ShareAlike 3.0 Unported License lizenziert . Teil 2 =>
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION