Premiers pas avec le SDK Alfresco Maven
Jeff Potts, janvier 2014 <= Partie 1- Nous travaillons avec votre projet dans l'IDE
- Comprendre la structure du projet
- Créer un projet adapté à l'accès Share
- Dépendances générales du projet
- Cible de GUERRE
- Essayons ceci : Créer un projet Share à l'aide d'un archétype
- Comprendre la structure du répertoire Share Access
- Lancement des tests internes sur Share
- Gestion des dépendances
- Autres sujets d'étude indépendante
- Où trouver plus d'informations
Nous travaillons avec votre projet dans l'IDE
Ce n'est pas nécessaire, mais de nombreuses personnes préfèrent travailler dans un IDE lors de la configuration d'Alfresco. N'importe quel IDE fera cela, mais l'un des plus populaires est Eclipse, voyons donc comment cela fonctionne.J'utilise la version Kepler de l'IDE Eclipse Java EE pour les développeurs Web. Il est livré avec le support Maven intégré.
Pour ouvrir le projet créé, procédez comme suit :
- Fichier, importation, Maven, projets Maven existants. Cliquez sur Suivant.
- Spécifiez le répertoire contenant le répertoire someco-mvn-tutorial-repo. Eclipse vérifiera ce répertoire et affichera votre projet dans la liste des projets. Assurez-vous que la case en regard du nom du projet est cochée et cliquez sur Suivant.
- Eclipse affichera les paramètres du panneau de plug-in Maven. Vous pouvez l’ignorer en toute sécurité maintenant. Cliquez sur Terminer.
Dans le panneau Marqueurs, vous pouvez voir une liste de problèmes Maven indiquant : « Exécution du plugin non couverte par la configuration du cycle de vie ».
Maven a des problèmes avec les plugins (set-version)
Pour résoudre :
- Faites un clic droit sur l'erreur et sélectionnez "Quick Fix".
- En sélectionnant "Marquer définitivement la version de l'ensemble d'objectifs dans pom.xml comme ignorée dans la version Eclipse". Prêt.
- Sélectionnez l'emplacement où se trouve votre POM (le mien est com.someco : someco-mvn-tutorial-repo : 1.0-SNAPSHOT) et cliquez sur OK.
- Faites un clic droit sur le projet et sélectionnez Maven, Mettre à jour le projet.
- Assurez-vous que le projet est sélectionné et cliquez sur OK.
Comprendre la structure du projet
La structure des répertoires de votre projet est un peu plus agréable à explorer dans votre IDE. Voyons ce que nous avons ici.- pom.xml À la racine du projet, vous voyez pom.xml. Il indique à Maven tout ce qu'il doit savoir sur votre projet. Vous souvenez-vous de certains paramètres que vous avez oubliés lors de la création d'un projet à partir d'un modèle ? Vous pouvez apporter des modifications aux paramètres ici. Par exemple, la version 1.1.1 de l'archétype vous permet de travailler avec Alfresco Community Edition version 4.2.e. Si vous souhaitez travailler avec une version différente, modifiez simplement quelques propriétés et dites à Maven de les mettre à jour et il s'occupera du reste.
- src/main/java C'est ici que vous devez créer vos propres packages pour organiser votre code Java. Des éléments tels que des classes d'exécution d'actions personnalisées, des comportements personnalisés et des contrôleurs Java pour les scripts Web sont ici. Si vous ne savez pas ce que c'est, ne vous inquiétez pas, des tutoriels sont disponibles ici . Ces fichiers seront éventuellement placés dans un JAR. Lorsque AMP est installé dans Alfresco WAR, le JAR se trouvera dans WEB-INF/lib .
- src/test Tout ce qui se trouve dans src/test est lié à l'exécution des tests. Les tests unitaires eux-mêmes se trouvent dans src/test/java . Toutes les ressources nécessaires à ces classes seront dans src/test/resources. Dans src/test/properties/local, vous verrez un fichier alfresco-global.properties . Si vous connaissez déjà Alfresco, vous savez qu'il est utilisé pour configurer le serveur Alfresco. Dans ce cas, cela sert uniquement à exécuter le serveur intégré, à des fins de tests.
- src/main/amp Tout le reste se trouve quelque part dans cette partie du projet. La structure AMP est si bien documentée que je ne souhaite pas la dupliquer ici. Je me contenterai d'en rappeler les points principaux :
- Le fichier module.properties indique à Alfresco ce qu'il doit savoir sur AMP, comme son ID, sa version, la version minimale et maximale d'Alfresco requise pour exécuter AMP, ainsi que tout autre AMP ayant les mêmes dépendances.
- Le répertoire config/alfresco/module/someco-mvn-tutorial-repo est le cœur d'AMP. L'endroit où vous placerez les configurations de fichiers Spring XML, le modèle de contenu des fichiers XML et la configuration de l'interface utilisateur. Comme vous le verrez plus tard, je préfère séparer les sous-répertoires pour chacune de ces choses.
- Si votre module inclut des scripts Web ou des workflows, ils ne sont pas contenus dans le répertoire des modules. Au lieu de cela, ils se trouvent dans config/alfresco/extension/templates/webscripts et config/alfresco/extension/workflows .
- Votre module peut inclure des ressources client qui doivent être déployées à la racine de l'application Web. Ils se trouvent dans src/main/amp/web dans les répertoires css, jsp, scripts et images.
Vous comprenez maintenant comment créer un projet pour les paramètres au niveau du référentiel. Jetons un coup d'œil au niveau Partager. Dans ce cadre, je montrerai une autre option pour créer un projet sans quitter Eclipse.
Créer un projet adapté à l'accès Share
Tout d'abord, vous devez comprendre que la structure d'un projet créé au niveau du référentiel est exactement la même que celle d'un projet pour une couche d'accès Share adaptée. Dans le futur du SDK Alfresco Maven, deux choses distingueront le projet Share : les dépendances du projet et le WAR AMP seront intégrés.Dépendances générales du projet
Arrêtons-nous un instant et parlons de gestion des dépendances. Pour le moment, l'implémentation est telle que par défaut l'archétype configuré dans le projet pom.xml utilise les dépendances de l'artefact alfresco-repository. Les projets partagés n'ont pas cette dépendance. Le fait est que de nombreux projets partagés n'utilisent pas du tout Java. Modifions maintenant pom.xml et supprimons les dépendances du référentiel alfresco. Cela entraînera la génération d'une erreur par les composants de démonstration et les classes de test associées lors de la compilation. Ils peuvent être supprimés.Cible de GUERRE
Une autre chose qui distingue le projet Share est le WAR dans lequel AMP est déployé. Au lieu de WAR en plein air, vous devez ici déployer sur Share WAR. Ceci est configuré dans la propriété alfresco.client.war de votre pom.xml. Par défaut, ceci est défini sur « en plein air ». Pour un projet Share, vous devez le remplacer par « share ».Essayons ceci : Créer un projet Share à l'aide d'un archétype
Créons un nouveau projet avec les paramètres généraux. Vous pouvez accéder à la ligne de commande et exécuter la même commande d'archétype que celle que vous avez exécutée auparavant, moins le nouvel artefactId, puis modifier la propriété alfresco.client.war en "share". Si vous n'utilisez pas Eclipse, faites-le maintenant et ignorez la section suivante.Une autre option consiste à configurer Eclipse afin que vous puissiez créer un nouveau projet Alfresco à l'aide du SDK Alfresco Maven sans quitter l'EDI. Faisons cela.
- Fichier, nouveau projet Maven.
- Sélectionnez le répertoire qui contient le répertoire du projet "repo", cliquez sur Suivant.
- Cliquez sur Configurer et nous pouvons ajouter le répertoire Alfresco à la liste.
- Cliquez sur Ajouter un catalogue distant
- Sélectionnez "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" comme fichier de catalogue. Sélectionnez la description "Archétypes Alfresco". Ensuite, cliquez sur OK et à nouveau sur OK plus près du panneau Préférences.
- Sélectionnez maintenant "Alfresco Archetypes" dans le répertoire et vous verrez un tas d'archétypes dans la liste.
- Sélectionnez "org.alfresco.maven.archetype" et les deux mêmes archétypes apparaîtront dans le filtre comme au début du tutoriel.
- Sélectionnez alfresco-amp-archetype et cliquez sur Suivant.
- Sélectionnez "com.someco" pour groupId, "someco-mvn-tutorial-share" comme artificialId et remplacez alfresco_target_amp_client_war par "share". Cliquez sur Terminer.
Comprendre la structure du répertoire Share Access
Comme je l'ai mentionné plus tôt, la structure de ce projet est exactement la même que celle de notre projet de repo. La seule différence est que dans le projet de dépôt, des éléments tels que les scripts Web se trouvent dans src/main/amp/config/alfresco/extension/templates/webscripts. Dans le projet général, ils seront dans src/main/amp/config/alfresco. /extension-web/site-webscripts.Lancement des tests internes sur Share
Souvent, vous travaillerez simultanément sur les deux niveaux de paramètres. Votre niveau Général a besoin d'un référentiel pour les messages. Une façon de procéder consiste à dire à Maven de démarrer votre projet de dépôt en utilisant :cd someco-mvn-tutorial-repo test d'intégration mvn -Pamp-to-warEt puis exécutez votre projet Share en utilisant :
cd someco-mvn-tutorial-share test d'intégration mvn -Pamp-to-war -Dmaven.tomcat.port=8081Une fois les deux serveurs opérationnels, vous pouvez ouvrir http://localhost:8081/share et vous connecter pour tester votre module.
Gestion des dépendances
L'avantage d'Apache Maven est qu'il gère les dépendances de votre projet pour vous. Tout ce que vous avez à faire est d’en informer Maven en configurant votre pom.xml. Par défaut, le SDK Alfresco Maven crée deux dépendances pour votre projet : alfresco-repository et junit.Comme je l'ai écrit plus tôt, le projet Alfresco Share ne dépend pas du référentiel Alfresco donc pour le projet someco-mvn-tutorial-share, ces dépendances peuvent être supprimées. Mais que se passe-t-il si je souhaite intégrer des éléments Java dans mon projet Share, tels que des scripts Web basés sur Java ? Dans ce cas, nous devons ajouter des dépendances.
Les scripts Web peuvent s'exécuter à n'importe quel niveau. Si vous écrivez des scripts Web basés sur Java dans votre projet de dépôt, la classe sera construite car les dépendances de l'artefact alfresco-repository dépendent à leur tour de l'artefact spring-webscripts. Vous pouvez voir ceci si vous ouvrez la hiérarchie des dépendances dans Eclipse dans votre fichier pom.xml :
Hiérarchie des dépendances dans Eclipse Une autre option. Vous pouvez voir la hiérarchie des dépendances en exécutant :
dépendance mvn: listeAinsi, pour ajouter des scripts Web basés sur Java à votre projet Share, nous devons ajouter spring-webscripts en tant que dépendance. Vous pouvez le faire en éditant pom.xml comme ceci :
<dépendance> <groupId>org.springframework.extensions.surf</groupId> <artifactId>spring-webscripts</artifactId> <version>1.2.0-M14</version> <scope>fourni</scope> </dépendance>Désormais, les scripts Web basés sur Java pourront trouver leur classe parent - DeclarativeWebScript.
Vous vous demandez peut-être comment vous saviez que la classe DeclarativeWebScript était incluse dans l'artefact spring-webscripts. Eh bien, par exemple, après l'avoir trouvé en allant sur http://artifacts.alfresco.com . Vous pouvez effectuer une recherche par classe et vous verrez tous les artefacts qui la contiennent.
Autres sujets d'étude indépendante
Vous savez maintenant comment utiliser le SDK Alfresco Maven pour créer des projets et comme référentiel Alfresco et configurer Alfresco Share. Si vous êtes nouveau dans le développement d'Alfresco, j'espère que vous conviendrez qu'il est très facile de monter un projet pour commencer. Si vous avez déjà découvert Alfresco mais que vous utilisez toujours les anciens SDK, j'espère que cela vous motivera à passer au nouveau SDK pour créer vos AMP.De nombreux sujets n'ont pas été abordés dans ce didacticiel. Je vous les laisse explorer à votre propre discrétion. En voici quelques uns:
- Le SDK Alfresco Maven prend en charge le rechargement dynamique des classes lorsqu'il est utilisé conjointement avec un outil appelé JRebel .
- Ce didacticiel couvre l'archétype AMP. Mais le SDK Alfresco Maven inclut un autre archétype appelé All-in-One. Cet archétype vous offre une installation Alfresco complète incluant SOLR.
- Alfresco Maven SDK est pris en charge dans Community Edition et Enterprise Edition. Si vous avez besoin d'aide pour accéder aux artefacts dans Enterprise Edition, contactez le support Alfresco.
Où trouver plus d'informations
- La documentation officielle du SDK Alfresco Maven se trouve sur http://docs.alfresco.com .
- Une documentation plus détaillée sur le SDK Alfresco Maven est disponible sur crafts.alfresco.com .
- Présentation de Gab à l'Alfresco Summit Test-Driven, développement rapide et livraison continue des solutions Alfresco
- Instant Apache Maven Starter Le livre de Maurizio Turatti et Maurizio Pillitu peut être une excellente ressource si vous souhaitez en savoir plus sur Apache Maven.
- Présentation de Premiers pas avec le développement Alfresco par Gethin James du Sommet Alfresco
- Alfresco Developer Series sur ECM Architect contient des didacticiels gratuits sur les modèles de contenu personnalisés, les actions, les comportements, les flux de travail et les scripts Web.
GO TO FULL VERSION