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

Erste Schritte mit Maven Alfresco SDK Teil 2

Veröffentlicht in der Gruppe Random-DE

Erste Schritte mit dem Alfresco Maven SDK

Jeff Potts, Januar 2014 <= ​​Teil 1
  • Wir arbeiten mit Ihrem Projekt in der IDE
  • Verständnis der Projektstruktur
  • Erstellen eines für den Freigabezugriff angepassten Projekts
  • Allgemeine Projektabhängigkeiten
  • WAR-Ziel
  • Versuchen wir Folgendes: Erstellen eines Freigabeprojekts mithilfe eines Archetyps
  • Verstehen der Share Access-Verzeichnisstruktur
  • Start interner Tests auf Share
  • Abhängigkeitsmanagement
  • Weitere Themen zum Selbststudium
  • Wo Sie weitere Informationen finden

Wir arbeiten mit Ihrem Projekt in der IDE

Dies ist nicht notwendig, aber viele Leute ziehen es vor, bei der Einrichtung von Alfresco in einer IDE zu arbeiten. Jede IDE kann dies tun, aber eine der beliebtesten ist Eclipse. Sehen wir uns also an, wie es funktioniert.
Ich verwende die Kepler-Version der Eclipse Java EE IDE für Webentwickler. Es verfügt über integrierte Maven-Unterstützung.
Gehen Sie wie folgt vor, um das erstellte Projekt zu öffnen:
  • Datei, Import, Maven, vorhandene Maven-Projekte. Weiter klicken.
    Erste Schritte mit Maven Alfresco SDK Teil 2 – 1
  • Geben Sie das Verzeichnis an, das das Verzeichnis someco-mvn-tutorial-repo enthält. Eclipse überprüft dieses Verzeichnis und zeigt Ihr Projekt in der Projektliste an. Stellen Sie sicher, dass das Kontrollkästchen neben dem Projektnamen aktiviert ist, und klicken Sie auf Weiter.
    Erste Schritte mit Maven Alfresco SDK Teil 2 – 2
  • Eclipse zeigt die Einstellungen des Maven-Plugin-Panels an. Sie können es jetzt getrost ignorieren. Klicken Sie auf Fertig stellen.
    Erste Schritte mit Maven Alfresco SDK Teil 2–3
Das Projekt wird nun in Ihren Eclipse-Arbeitsbereich importiert.
Im Bereich „Markierungen“ sehen Sie eine Liste von Maven-Problemen mit der Meldung „Plugin-Ausführung nicht durch Lebenszykluskonfiguration abgedeckt“.
Maven hat Probleme mit Plugins Maven hat Probleme mit Plugins (Set-Version)
Zu beheben:
  1. Klicken Sie mit der rechten Maustaste auf den Fehler und wählen Sie „Schnellbehebung“.
  2. Wählen Sie „Zielsatzversion in pom.xml dauerhaft als im Eclipse-Build ignoriert markieren“ aus. Bereit.
  3. Wählen Sie den Speicherort aus, an dem sich Ihr POM befindet (meiner ist com.someco: someco-mvn-tutorial-repo: 1.0-SNAPSHOT) und klicken Sie auf OK.
Nach der Neuerstellung des Projekts wird möglicherweise eines der neuesten Probleme angezeigt: „Die Projektkonfiguration ist mit pom.xml nicht auf dem neuesten Stand.“ Zur Korrektur:
  1. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Maven, Projekt aktualisieren.
  2. Stellen Sie sicher, dass das Projekt ausgewählt ist, und klicken Sie auf OK.
Jetzt ist Eclipse wahrscheinlich zufrieden und die einzigen Fehler dürften auf Warnungen vor einigen ungenutzten Java-Importen zurückzuführen sein.

Verständnis der Projektstruktur

Die Verzeichnisstruktur Ihres Projekts lässt sich in Ihrer IDE etwas besser erkunden. Mal sehen, was wir hier haben.
  • pom.xml Im Stammverzeichnis des Projekts sehen Sie pom.xml. Es teilt Maven alles mit, was es über Ihr Projekt wissen muss. Erinnern Sie sich an einige Einstellungen, die Sie beim Erstellen eines Projekts aus einer Vorlage vergessen haben? Hier können Sie Änderungen in den Einstellungen vornehmen. Version 1.1.1 des Archetyps ermöglicht Ihnen beispielsweise die Arbeit mit Alfresco Community Edition Version 4.2.e. Wenn Sie mit einer anderen Version arbeiten möchten, ändern Sie einfach ein paar Eigenschaften und weisen Sie Maven an, sie zu aktualisieren. Der Rest wird dann erledigt.
  • src/main/java Hier sollten Sie Ihre eigenen Pakete erstellen, um Ihren Java-Code zu organisieren. Hier finden Sie Dinge wie benutzerdefinierte Aktionsausführungsklassen, benutzerdefinierte Verhaltensweisen und Java-Controller für Webskripte. Wenn Sie nicht wissen, was das alles ist, machen Sie sich keine Sorgen, es gibt hier Tutorials . Diese Dateien werden schließlich in einem JAR abgelegt. Wenn AMP in Alfresco WAR installiert ist, befindet sich das JAR in WEB-INF/lib .
  • src/test Alles in src/test hängt mit der Testausführung zusammen. Die Unit-Tests selbst befinden sich in src/test/java . Alle von diesen Klassen benötigten Ressourcen befinden sich in src/test/resources. In src/test/properties/local sehen Sie eine alfresco-global.properties- Datei . Wenn Sie bereits etwas über Alfresco wissen, wissen Sie, dass es zur Konfiguration des Alfresco-Servers verwendet wird. In diesem Fall wird dies nur zum Betrieb des eingebetteten Servers zu Testzwecken verwendet.
  • src/main/amp Alles andere befindet sich irgendwo in diesem Teil des Projekts. Die AMP-Struktur ist so gut dokumentiert, dass ich sie hier nicht duplizieren möchte. Ich möchte nur die wichtigsten Punkte hervorheben:
    • Die Datei module.properties teilt Alfresco mit, was es über AMP wissen muss, wie z. B. ID, Version, minimale und maximale Version von Alfresco, die zum Ausführen von AMP erforderlich ist, und alle anderen AMPs mit denselben Abhängigkeiten.
    • Das Verzeichnis config/alfresco/module/someco-mvn-tutorial-repo ist das Herzstück von AMP. Der Ort, an dem Sie die Spring XML-Dateikonfigurationen, das Inhaltsmodell der XML-Dateien und die Benutzeroberflächenkonfiguration platzieren. Wie Sie später sehen werden, bevorzuge ich es, für jedes dieser Dinge separate Unterverzeichnisse zu erstellen.
    • Wenn Ihr Modul Webskripte oder Workflows enthält, sind diese nicht im Modulverzeichnis enthalten. Stattdessen befinden sie sich in config/alfresco/extension/templates/webscripts und config/alfresco/extension/workflows .
    • Ihr Modul enthält möglicherweise Clientressourcen, die im Stammverzeichnis der Webanwendung bereitgestellt werden müssen. Sie befinden sich in src/main/amp/web in den Verzeichnissen css, jsp, scripts und images.
Sie sollten das gesamte Projekt in die Quellcodeverwaltung einchecken. Möglicherweise möchten Sie Ihren Versionskontrollclient so konfigurieren, dass er das Zielverzeichnis und das Verzeichnis alf_data_dev ignoriert.
Jetzt wissen Sie, wie Sie ein Projekt für Einstellungen auf Repository-Ebene erstellen. Werfen wir einen Blick auf die Share-Ebene. Im Rahmen dessen zeige ich eine weitere Möglichkeit, ein Projekt zu erstellen, ohne Eclipse zu verlassen.

Erstellen eines für den Freigabezugriff angepassten Projekts

Zunächst müssen Sie verstehen, dass die Struktur für ein Projekt, das auf Repository-Ebene erstellt wird, genau die gleiche ist wie für ein Projekt für eine angepasste Freigabezugriffsebene. In der Zukunft des Alfresco Maven SDK gibt es zwei Dinge, die das Share-Projekt auszeichnen: Die Abhängigkeiten des Projekts und das AMP WAR werden darin integriert.

Allgemeine Projektabhängigkeiten

Lassen Sie uns einen Moment innehalten und über das Abhängigkeitsmanagement sprechen. Derzeit ist die Implementierung so, dass der konfigurierte Archetyp im Projekt pom.xml standardmäßig die Abhängigkeiten des alfresco-repository-Artefakts verwendet. Für freigegebene Projekte gilt diese Abhängigkeit nicht. Tatsache ist, dass viele freigegebene Projekte überhaupt kein Java verwenden. Jetzt bearbeiten wir pom.xml und entfernen die Alfresco-Repository-Abhängigkeiten. Dies führt dazu, dass die Demokomponenten und zugehörigen Testklassen beim Kompilieren einen Fehler generieren. Sie können entfernt werden.

WAR-Ziel

Ein weiteres Merkmal des Share-Projekts ist die WAR-Datei, in der AMP bereitgestellt wird. Anstelle von Alfresco WAR müssen Sie hier Share WAR bereitstellen. Dies wird in der Eigenschaft alfresco.client.war in Ihrer pom.xml konfiguriert. Standardmäßig ist dies auf „alfresco“ eingestellt. Für ein Share-Projekt müssen Sie es durch „share“ ersetzen.

Versuchen wir Folgendes: Erstellen eines Freigabeprojekts mithilfe eines Archetyps

Erstellen wir ein neues Projekt mit den allgemeinen Einstellungen. Sie können zur Befehlszeile gehen und denselben Archetype-Befehl wie zuvor ausführen, abzüglich der neuen Artefakt-ID, und dann die Eigenschaft alfresco.client.war in „share“ ändern. Wenn Sie Eclipse nicht verwenden, machen Sie es jetzt und überspringen Sie den nächsten Abschnitt.
Eine weitere Möglichkeit besteht darin, Eclipse so zu konfigurieren, dass Sie mit dem Alfresco Maven SDK ein neues Alfresco-Projekt erstellen können, ohne die IDE zu verlassen. Lass uns das tun.
  1. Datei, Neues Maven-Projekt.
  2. Wählen Sie das Verzeichnis aus, das das Projektverzeichnis „repo“ enthält, und klicken Sie auf „Weiter“.
    Erste Schritte mit Maven Alfresco SDK Teil 2–4
  3. Klicken Sie auf Konfigurieren und wir können das Alfresco-Verzeichnis zur Liste hinzufügen.
    Erste Schritte mit Maven Alfresco SDK Teil 2–5
  4. Klicken Sie auf Remote-Katalog hinzufügen
  5. Wählen Sie „https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml“ als Katalogdatei. Wählen Sie die Beschreibung „Alfresco Archetypes“. Klicken Sie anschließend auf „OK“ und dann noch einmal auf „OK“, näher am Bereich „Einstellungen“.
    Erste Schritte mit Maven Alfresco SDK Teil 2–6
  6. Wählen Sie nun „Alfresco Archetypes“ im Verzeichnis aus und Sie sehen eine Reihe von Archetypen in der Liste.
  7. Wählen Sie „org.alfresco.maven.archetype“ und im Filter erscheinen dieselben zwei Archetypen wie zu Beginn des Tutorials.
  8. Wählen Sie alfresco-amp-archetype aus und klicken Sie auf Weiter.
    Erste Schritte mit Maven Alfresco SDK Teil 2–7
  9. Wählen Sie „com.someco“ als Gruppen-ID, „someco-mvn-tutorial-share“ als Artefakt-ID und ändern Sie alfresco_target_amp_client_war in „share“. Klicken Sie auf Fertig stellen.
    Erste Schritte mit Maven Alfresco SDK Teil 2–8
Ihr Share-Projekt befindet sich jetzt im Arbeitsbereich. Wenn Sie das nächste Mal ein neues Projekt mit dem Archetyp erstellen, sind etwas weniger Schritte erforderlich, da Sie kein Verzeichnis hinzufügen müssen.

Verstehen der Share Access-Verzeichnisstruktur

Wie ich bereits erwähnt habe, ist die Struktur dieses Projekts genau die gleiche wie die unseres Repo-Projekts. Der einzige Unterschied besteht darin, dass sich im Repo-Projekt solche Dinge wie Webskripte in src/main/amp/config/alfresco/extension/templates/webscripts befinden. Im allgemeinen Projekt befinden sie sich in src/main/amp/config/alfresco /web-extension/site-webscripts.

Start interner Tests auf Share

Oftmals werden Sie an beiden Einstellungsebenen gleichzeitig arbeiten. Ihre allgemeine Ebene benötigt ein Repository für Nachrichten. Eine Möglichkeit, dies zu tun, besteht darin, Maven anzuweisen, Ihr Repo-Projekt zu starten, indem Sie Folgendes verwenden:
cd someco-mvn-tutorial-repo
mvn Integrationstest -Pamp-to-war
Und führen Sie dann Ihr Share-Projekt aus mit:
cd someco-mvn-tutorial-share
mvn Integration-Test -Pamp-to-war -Dmaven.tomcat.port=8081
Sobald beide Server hochgefahren sind, können Sie http://localhost:8081/share öffnen und sich anmelden, um Ihr Modul zu testen.

Abhängigkeitsmanagement

Das Coole an Apache Maven ist, dass es die Abhängigkeiten Ihres Projekts für Sie verwaltet. Alles, was Sie tun müssen, ist, Maven darüber zu informieren, indem Sie Ihre pom.xml konfigurieren. Standardmäßig erstellt das Alfresco Maven SDK zwei Abhängigkeiten für Ihr Projekt: alfresco-repository und junit.
Wie ich bereits geschrieben habe, ist das Alfresco Share-Projekt nicht vom Alfresco-Repository abhängig, daher können diese Abhängigkeiten für das someco-mvn-tutorial-share-Projekt entfernt werden. Aber was ist, wenn ich einige Java-Inhalte in mein Share-Projekt einfügen möchte, beispielsweise Java-basierte Webskripte? In diesem Fall müssen wir Abhängigkeiten hinzufügen.
Webskripte können auf jeder Ebene ausgeführt werden. Wenn Sie in Ihrem Repo-Projekt Java-basierte Webskripte schreiben, wird die Klasse erstellt, da die Abhängigkeiten des alfresco-repository-Artefakts wiederum vom spring-webscripts-Artefakt abhängen. Sie können dies sehen, wenn Sie die Abhängigkeitshierarchie in Eclipse in Ihrer pom.xml-Datei öffnen:
Abhängigkeitshierarchie in Eclipse
Abhängigkeitshierarchie in Eclipse Eine weitere Option. Sie können die Abhängigkeitshierarchie anzeigen, indem Sie Folgendes ausführen:
mvn-Abhängigkeit:Liste
Um also Java-basierte Webskripte zu Ihrem Share-Projekt hinzuzufügen, müssen wir spring-webscripts als Abhängigkeit hinzufügen. Sie können dies tun, indem Sie pom.xml wie folgt bearbeiten:
<Abhängigkeit>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>spring-webscripts</artifactId>
    <version>1.2.0-M14</version>
    <scope>bereitgestellt</scope>
</Abhängigkeit>
Jetzt können Java-basierte Webskripte ihre übergeordnete Klasse finden – DeclarativeWebScript.
Sie fragen sich vielleicht, woher Sie wissen konnten, dass die DeclarativeWebScript-Klasse im Spring-Webscripts-Artefakt enthalten war. Nun, zum Beispiel, nachdem ich es gefunden habe, indem ich zu http://artifacts.alfresco.com gegangen bin . Sie können nach Klasse suchen und es werden Ihnen alle Artefakte angezeigt, die diese Klasse enthalten.

Weitere Themen zum Selbststudium

Sie wissen jetzt, wie Sie das Alfresco Maven SDK zum Erstellen von Projekten und als Ihr Alfresco-Repository verwenden und Alfresco Share konfigurieren. Wenn Sie neu in der Alfresco-Entwicklung sind, werden Sie mir hoffentlich zustimmen, dass es wirklich einfach ist, ein Projekt zusammenzustellen, um loszulegen. Wenn Sie bereits erste Erfahrungen mit Alfresco gemacht haben, aber immer noch die alten SDKs verwenden, hoffe ich, dass Sie das motiviert, zum neuen SDK zu wechseln, um Ihre AMPs zu erstellen.
Es gibt viele Themen, die in diesem Tutorial nicht behandelt wurden. Ich überlasse es Ihnen, sie nach eigenem Ermessen zu erkunden. Hier sind einige davon:
  • Das Alfresco Maven SDK unterstützt das dynamische Neuladen von Klassen, wenn es in Verbindung mit einem Tool namens JRebel verwendet wird .
  • Dieses Tutorial behandelt den AMP-Archetyp. Aber das Alfresco Maven SDK enthält einen weiteren Archetyp namens All-in-One. Mit diesem Archetyp erhalten Sie eine komplette Alfresco-Installation inklusive SOLR.
  • Alfresco Maven SDK wird sowohl in der Community Edition als auch in der Enterprise Edition unterstützt. Wenn Sie Hilfe beim Zugriff auf Artefakte in Enterprise Edition benötigen, wenden Sie sich an den Alfresco-Support.

Wo Sie weitere Informationen finden

<= Teil 1
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION