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

Premiers pas avec le SDK Maven Alfresco, partie 1

Publié dans le groupe Random-FR

Premiers pas avec le SDK Alfresco Maven

Jeff Potts, janvier 2014 partie 2 =>
  • Introduction
  • Concepts de base
  • Apache Maven
  • Forfaits modulaires Alfresco (AMP)
  • SDK Alfresco Maven
  • Que pouvez-vous dire de l’ancien SDK basé sur Ant ?
  • Votre premier projet
  • Lançons-le
  • Qu'est-ce que c'était?
  • Autres commandes de construction
  • Enregistrement

Introduction

Ce didacticiel a été créé pour les personnes qui doivent, d'une manière ou d'une autre, configurer Alfresco sur un projet. Et donc au début, vous pensez : « Qu'est-ce que c'est ?! » Mais à la fin, vous apprendrez :

  • Comment créer un projet Alfresco à partir de zéro à l'aide du SDK Alfresco Maven
  • Que devrait-il se passer en fonction de vos paramètres
  • Comment créer et exécuter un test
  • Comment créer un artefact pouvant être intégré ou partagé avec la communauté

Ce didacticiel doit être considéré comme un point de départ avant de passer à un apprentissage plus détaillé sur des sujets tels que la modélisation de contenu, la personnalisation des actions et des comportements, les flux de travail supplémentaires ou les scripts Web.

Avant de commencer, une brève digression : il existe presque toujours de nombreuses voies alternatives pour parvenir à une solution. Dans ce tutoriel, je vais vous guider de la manière la plus simple et la plus directe, un itinéraire sûr qui vous aidera à le comprendre plus rapidement. Plus tard, vous pourrez modifier certaines choses ou explorer d'autres itinéraires si vous le souhaitez.

Concepts de base.

Vous n'avez pas besoin d'en savoir beaucoup sur Maven, Alfresco ou pourquoi ce SDK est nécessaire avant de commencer à l'utiliser, mais certaines connaissances peuvent vous aider d'une certaine manière, alors laissez-moi vous expliquer rapidement les concepts de base.

Apache Maven

Apache Maven est un outil de gestion de build. Il possède de nombreuses fonctionnalités, mais la principale est qu'il permet de gagner du temps pour déterminer sur quelles dépendances (et dépendances des dépendances) repose votre projet. Maven peut récupérer et mettre en cache ces dépendances pour vous. Si vous avez déjà passé du temps à essayer de déterminer quel fichier JAR vient après quel fichier JAR, alors l'utilité d'un tel outil est évidente.

Forfaits modulaires Alfresco (AMP)

AMP est un fichier ZIP avec une structure de répertoires suivant certaines conventions. Les fichiers AMP sont utilisés pour partager et déployer facilement des paramètres sur la plateforme Alfresco. Si votre projet doit créer des paramètres personnalisés au niveau du dépôt (application Web/extérieur), vous créez un « dépôt » AMP. Si votre projet doit créer des paramètres au niveau du partage (application Web/partage), vous créez un AMP « partage ». Il est assez courant pour un projet que lorsque des changements sont nécessaires aux deux niveaux, vous créez deux AMP.

SDK Alfresco Maven

Les programmeurs d'aujourd'hui sont habitués à des frameworks puissants dans lesquels un répertoire vide est complètement rempli de fichiers en une minute et l'instant suivant, votre projet est prêt à être lancé. Pourquoi les développeurs Alfresco devraient-ils se contenter de moins ?

L'objectif du SDK basé sur Maven est de créer les conditions les plus simples possibles pour démarrer le développement d'Alfresco. Le SDK se compose d'un modèle de projet (un « archétype » dans la terminologie Maven) et de quelques fonctionnalités intégrées qui indiquent à Maven comment créer des AMP et les déployer sur Alfresco.

Si vous écrivez votre propre application séparément des WAR Alfresco et Share, vous n'avez pas besoin du SDK Alfresco Maven. Mais si vous envisagez d'écrire du code qui s'exécute dans l'une de ces applications Web, le SDK Alfresco Maven est le point de départ.

Qu’en est-il de l’ancien SDK basé sur Ant ?

Alfresco propose ce SDK téléchargeable depuis le début. Le SDK contenait un conteneur ZIP avec les dépendances nécessaires pour la compilation, le code source, la documentation et les exemples de projets Eclipse. Ces exemples utilisaient un constructeur basé sur Ant.

Il n'y avait rien de mal à cette approche, mais les plates-formes de développement ont évolué et les SDK d'Ant n'ont pas réussi à évoluer avec elles. À l'heure actuelle, certaines parties de ces exemples sont obsolètes (les API des services Web natifs, par exemple, ou l'interface utilisateur d'Alfresco Explorer) et il n'y a pas suffisamment d'exemples pour des parties extrêmement importantes telles que le CMIS, les scripts Web et les flux de travail avancés utilisant Activiti.

En plus de ses exemples obsolètes, l'ancien SDK Ant est requis. Les développeurs font trop de travail. Avec le SDK Alfresco Maven, vous n'avez même pas besoin de télécharger quoi que ce soit : il vous suffit de créer votre projet et de commencer à coder.

Vous disposez désormais d’un niveau élevé de compréhension d’Apache Maven, d’AMP et du SDK Alfresco Maven. Il est temps de tout voir en action

Votre premier projet

Laissez-moi vous montrer à quel point il est facile de commencer à développer pour Alfresco à l'aide du SDK Alfresco Maven. Avant de commencer, je dois vous rappeler d'avoir installé JDK 1.7, ainsi qu'Apache Maven 3. Vous n'avez rien d'autre à télécharger. Sérieusement. Même en plein air.

  1. Créez un répertoire vide. Nous y créerons bientôt des répertoires supplémentaires.
  2. Créons maintenant un projet vide. Supposons que vous souhaitiez créer quelque chose que vous allez déployer dans le référentiel Alfresco, par exemple un modèle de contenu personnalisé, plusieurs actions de règles personnalisées, un nouvel ensemble de scripts Web ou certains processus métier Activiti. Cela n'a vraiment pas d'importance. Pour créer un nouveau projet, exécutez la commande :
    archétype mvn : générer\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype :
  3. Maven fera du travail et vous demandera éventuellement de sélectionner "archétype". Votre sélection de base parmi les bibliothèques de modèles de projet. Il y en a deux disponibles ici. L’un est appelé « archétype-amp-alfresco » et l’autre « archétype-alfresco-allinone ». Notre objectif est de créer un AMP pouvant être déployé dans Alfresco, le premier point est donc ce dont nous avons besoin. Tapez 1 et appuyez sur Entrée.
  4. Maven vous demande maintenant une version spécifique du modèle sur lequel vous allez baser votre projet. Actuellement, la dernière version est la 1.1.1, qui est la cinquième option de la liste, alors appuyez sur 5 et Entrée.
  5. Maven pose des questions sur groupId. C'est similaire au "paquet Java". Mes exemples sont toujours basés sur le fait que je travaille dans une entreprise fictive appelée SomeCo, je vais donc saisir ici « com.someco ». Tapez quelque chose qui a du sens pour vous et appuyez sur Entrée.
  6. Vient ensuite l’artefactId. Considérez-le comme le nom de votre projet. Cela deviendra également votre identifiant AMP, alors choisissez quelque chose de spécial. Vous devez également ajouter la ligne "-repo" à votre artefactId car ce module sera intégré au référentiel. Je nommerai le mien "someco-mvn-tutorial-repo" et j'appuierai sur Entrée.

  7. À ce stade, Maven vous montrera les valeurs que vous avez saisies, ajoutera d'autres valeurs par défaut et vous demandera de confirmer votre sélection. Si vous souhaitez modifier quelque chose, vous pouvez sélectionner « N » puis apporter des modifications ou « Y » pour continuer. Vous pourrez toujours modifier ces valeurs ultérieurement si nécessaire. Appuyez sur "Y", puis sur Entrée.

Maven va maintenant faire du travail. Une fois terminé, vous obtiendrez ce qui suit :

  • Un projet structuré pour accompagner votre développement Alfresco
  • Fichiers de configuration par défaut
  • Code Java minimal pour des tests unitaires supplémentaires pour vérifier que tout fonctionne
  • Configuration requise pour exécuter l'instance Alfresco locale requise pour les tests
  • Fichier XML POM (Project Object Model) par défaut qui indique à Maven les dépendances de votre projet

Allons-y

Vous n'avez encore rien téléchargé. Vous n'avez encore rien modifié. Tout ce que vous avez fait, c'est dire à Maven de créer un projet basé sur le modèle, mais j'ai une excellente nouvelle : votre projet est prêt à être exécuté dès maintenant.

Essaye ça:

cd someco-mvn-tutorial-repo
test d'intégration mvn -Pamp-to-war

Si vous regardez le résultat, vous verrez que Maven télécharge tout ce dont vous avez besoin pour compiler le projet, créer l'AMP, déployer l'AMP sur Alfresco WAR, déployer Alfresco WAR sur le serveur Tomcat intégré et l'exécuter. Finalement, vous verrez quelque chose de similaire à :

2014-01-15 18:01:19,339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] 1 module(s) trouvé(s).
2014-01-15 18:01:19,480 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Installation du module 'someco-mvn-tutorial-repo' version 1.0.1401151758.

Ce qui signifie que vos modules de projet ont été générés et reconnus par le serveur Alfresco.

Après avoir vu :

16 janvier 2014 08:38:20 org.apache.coyote.AbstractProtocol start INFO : Démarrage de ProtocolHandler ["http-bio-8080"]

Vous devriez pouvoir ouvrir :

http://localhost:8080/alfresco

Et connectez-vous en utilisant "admin" et "admin".

Lorsque vous avez fini de l'admirer, revenez à la fenêtre où vous avez exécuté votre commande Maven et appuyez sur ctrl-c pour arrêter le serveur.

Si vous obtenez une erreur de mémoire insuffisante lors de l'exécution d'un test d'intégration, vous devrez peut-être saisir certains paramètres JVM pour les options de mémoire dans Maven. Une solution possible consiste à définir la variable d'environnement MAVEN_OPTS. Par exemple, j'ai défini mes valeurs sur :

-Xmx1024M -XX:TailleMaxPerm=512m

Utilisez MAVEN_OPTS pour le définir suffisamment afin que vous ne voyiez pas d'erreurs de dépassement de mémoire.

Qu'est-ce que c'était?

Vous avez demandé à Maven d'exécuter "integration-test" pour utiliser le profil "amp-to-war". Cela a conduit à la construction du projet, à son déploiement en tant qu'AMP sur un nouveau WAR Alfresco et à l'exécution du serveur Tomcat intégré. Après cela, vous avez pu vous connecter à l'ancien client Alfresco Explorer et travailler avec le référentiel en testant votre module.

Si vous regardez dans le répertoire cible, vous verrez AMP qui a été créé puis déployé dans Alfresco WAR. Dans mon cas, cela s'appelle "someco-mvn-tutorial-repo.amp". Ce fichier est ce que vous devez fournir à votre équipe informatique si vous êtes prêt à appliquer les modifications apportées au niveau du référentiel au serveur Alfresco en direct.

Autres commandes de construction

Il n'est pas toujours nécessaire de démarrer le serveur Alfresco et de le laisser fonctionner. Si vous souhaitez simplement créer le projet, exécuter un test unitaire et empaqueter AMP, vous pouvez faire :

paquet mvn

Si vous souhaitez installer AMP dans votre référentiel Maven local, exécutez :

installation mvn

Vous avez peut-être remarqué que le projet inclut par défaut un simple test unitaire. Par défaut, Maven exécutera automatiquement des tests unitaires dans votre projet. Vous pouvez voir ceci dans la sortie de la console :

-------------------------------------------------- -----
 ESSAIS
-------------------------------------------------- -----
Exécution de org.alfresco.demoamp.test.DemoComponentTest

C'est une bonne pratique de s'assurer que votre projet inclut toujours des tests unitaires et de les exécuter à chaque fois que vous construisez. De nombreuses organisations utilisent des outils CI (Continuous Integration) qui dépendent de ces tests. Si, pour une raison quelconque, vous ne souhaitez pas exécuter de test, vous pouvez l'ignorer, quelque chose comme ceci :

mvn install -DskipTests=true

Si vous souhaitez supprimer tous les éléments compilés créés par Maven et recommencer, vous pouvez exécuter :

mvn propre

Si vous souhaitez également supprimer la base de données intégrée, le contenu Alfresco enregistré, les index et les journaux toujours créés lors de l'exécution des tests du serveur, vous pouvez exécuter :

mvn clean -Purge

Vous savez maintenant comment créer un nouveau projet Alfresco à l'aide d'un modèle et maîtrisez les bases de la construction avec ou sans tests. L'étape suivante consiste à apprendre à travailler avec votre projet dans l'EDI.

Enregistrement

Le fichier log4j.properties se trouve dans le répertoire modules, le fichier log4j.properties comprend

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

Vous souhaiterez probablement le remplacer par vos propres paramètres adaptés à la structure de votre package.

Pour configurer module.log.level, vous pouvez le faire lorsque vous démarrez Maven, comme ceci :

mvn install -Dmodule.log.level=DEBUG

Ou vous pouvez modifier pom.xml et ajouter ceci aux propriétés, quelque chose comme ceci :

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

Si vous modifiez pom.xml, AMP recevra ces paramètres lors de sa création et, par la suite, le WAR dans lequel AMP est déployé écrira des journaux. Cela peut (ou non) être ce que vous voulez. Si vous n'êtes pas sûr, il peut être préférable de définir les valeurs à l'aide de la ligne de commande, car cela vous évitera de gâcher accidentellement les valeurs de votre AMP.

Architecte ECM


Ce travail est sous licence Creative Commons Attribution-ShareAlike 3.0 Unported . Partie 2 =>
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION