JavaRush /Blog Java /Random-FR /Premiers pas avec le SDK Maven Alfresco, partie 2
CynepHy6
Niveau 34
Великий Новгород

Premiers pas avec le SDK Maven Alfresco, partie 2

Publié dans le groupe Random-FR

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.
    Premiers pas avec le SDK Maven Alfresco, partie 2 - 1
  • 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.
    Premiers pas avec le SDK Maven Alfresco, partie 2 - 2
  • Eclipse affichera les paramètres du panneau de plug-in Maven. Vous pouvez l’ignorer en toute sécurité maintenant. Cliquez sur Terminer.
    Premiers pas avec le SDK Maven Alfresco, parties 2 à 3
Le projet est maintenant importé dans votre espace de travail Eclipse.
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 Maven a des problèmes avec les plugins (set-version)
Pour résoudre :
  1. Faites un clic droit sur l'erreur et sélectionnez "Quick Fix".
  2. 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.
  3. 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.
Après avoir reconstruit le projet, vous pouvez rencontrer l'un des derniers problèmes « La configuration du projet n'est pas à jour avec pom.xml ». Pour correction :
  1. Faites un clic droit sur le projet et sélectionnez Maven, Mettre à jour le projet.
  2. Assurez-vous que le projet est sélectionné et cliquez sur OK.
Maintenant, Eclipse est probablement satisfait et les seules erreurs devraient être dues à des avertissements concernant certaines importations Java inutilisées.

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 devriez vérifier l'intégralité de ce projet dans le contrôle de code source. Vous souhaiterez peut-être configurer votre client de contrôle de version pour ignorer le répertoire cible et le répertoire alf_data_dev.
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.
  1. Fichier, nouveau projet Maven.
  2. Sélectionnez le répertoire qui contient le répertoire du projet "repo", cliquez sur Suivant.
    Premiers pas avec le SDK Maven Alfresco, parties 2 à 4
  3. Cliquez sur Configurer et nous pouvons ajouter le répertoire Alfresco à la liste.
    Premiers pas avec le SDK Maven Alfresco, parties 2 à 5
  4. Cliquez sur Ajouter un catalogue distant
  5. 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.
    Premiers pas avec le SDK Maven Alfresco, parties 2 à 6
  6. Sélectionnez maintenant "Alfresco Archetypes" dans le répertoire et vous verrez un tas d'archétypes dans la liste.
  7. Sélectionnez "org.alfresco.maven.archetype" et les deux mêmes archétypes apparaîtront dans le filtre comme au début du tutoriel.
  8. Sélectionnez alfresco-amp-archetype et cliquez sur Suivant.
    Premiers pas avec le SDK Maven Alfresco, parties 2 à 7
  9. Sélectionnez "com.someco" pour groupId, "someco-mvn-tutorial-share" comme artificialId et remplacez alfresco_target_amp_client_war par "share". Cliquez sur Terminer.
    Premiers pas avec le SDK Maven Alfresco, parties 2 à 8
Votre projet Share est maintenant dans l'espace de travail. La prochaine fois que vous créerez un nouveau projet en utilisant l'archétype, cela prendra un peu moins d'étapes car vous n'aurez pas besoin d'ajouter de répertoire.

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-war
Et puis exécutez votre projet Share en utilisant :
cd someco-mvn-tutorial-share
test d'intégration mvn -Pamp-to-war -Dmaven.tomcat.port=8081
Une 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
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: liste
Ainsi, 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

<= Partie 1
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION