JavaRush /Java Blog /Random-IT /Iniziare con Maven Alfresco SDK parte 2
CynepHy6
Livello 34
Великий Новгород

Iniziare con Maven Alfresco SDK parte 2

Pubblicato nel gruppo Random-IT

Iniziare con Alfresco Maven SDK

Jeff Potts, gennaio 2014 <= ​​Parte 1
  • Lavoriamo con il tuo progetto nell'IDE
  • Comprendere la struttura del progetto
  • Creazione di un progetto adattato per l'accesso alla condivisione
  • Dipendenze generali del progetto
  • Obiettivo di GUERRA
  • Proviamo questo: creare un progetto Share utilizzando un archetipo
  • Comprendere la struttura della directory di Share Access
  • Avvio dei test interni su Share
  • Gestione delle dipendenze
  • Altri argomenti per lo studio indipendente
  • Dove trovare maggiori informazioni

Lavoriamo con il tuo progetto nell'IDE

Ciò non è necessario, ma molte persone preferiscono lavorare in un IDE durante la configurazione di Alfresco. Qualsiasi IDE lo farà, ma uno dei più popolari è Eclipse, quindi vediamo come funziona.
Sto utilizzando la versione Kepler di Eclipse Java EE IDE per sviluppatori Web. Viene fornito con il supporto Maven integrato.
Per aprire il progetto creato, procedere come segue:
  • File, importazione, Maven, progetti Maven esistenti. Fare clic su Avanti.
    Iniziare con Maven Alfresco SDK parte 2 - 1
  • Specificare la directory contenente la directory someco-mvn-tutorial-repo. Eclipse controllerà questa directory e mostrerà il tuo progetto nell'elenco dei progetti. Assicurati che la casella di controllo accanto al nome del progetto sia selezionata e fai clic su Avanti.
    Iniziare con Maven Alfresco SDK parte 2 - 2
  • Eclipse mostrerà le impostazioni del pannello plug-in Maven. Puoi tranquillamente ignorarlo ora. Fare clic su Fine.
    Iniziare con Maven Alfresco SDK parte 2 - 3
Il progetto è ora importato nell'area di lavoro Eclipse.
Nel pannello Marcatori puoi vedere un elenco di problemi di Maven che dice "L'esecuzione del plugin non è coperta dalla configurazione del ciclo di vita".
Maven ha problemi con i plugin Maven ha problemi con i plugin (versione set)
Per risolvere:
  1. Fare clic con il tasto destro sull'errore e selezionare "Correzione rapida".
  2. Selezionando "Contrassegna permanentemente la versione del set di obiettivi in ​​pom.xml come ignorata nella build di Eclipse". Pronto.
  3. Seleziona la posizione in cui si trova il tuo POM (il mio è com.someco: someco-mvn-tutorial-repo: 1.0-SNAPSHOT) e fai clic su OK.
Dopo aver ricostruito il progetto, potresti vedere uno degli ultimi problemi "La configurazione del progetto non è aggiornata con pom.xml". Per la correzione:
  1. Fare clic con il tasto destro sul progetto e selezionare Maven, Aggiorna progetto.
  2. Assicurati che il progetto sia selezionato e fai clic su OK.
Ora Eclipse è probabilmente soddisfatto e gli unici errori dovrebbero essere dovuti ad avvisi su alcune importazioni Java non utilizzate.

Comprendere la struttura del progetto

La struttura delle directory del tuo progetto è un po' più piacevole da esplorare nel tuo IDE. Vediamo cosa abbiamo qui.
  • pom.xml Nella root del progetto vedi pom.xml. Dice a Maven tutto ciò che deve sapere sul tuo progetto. Ricordi alcune impostazioni che hai dimenticato durante la creazione di un progetto da un modello? Puoi apportare modifiche alle impostazioni qui. Ad esempio, la versione 1.1.1 dell'archetipo consente di lavorare con Alfresco Community Edition versione 4.2.e. Se vuoi lavorare con una versione diversa, modifica semplicemente alcune proprietà e dì a Maven di aggiornarle e lui si occuperà del resto.
  • src/main/java Qui è dove dovresti creare i tuoi pacchetti per organizzare il tuo codice Java. Cose come classi di esecuzione di azioni personalizzate, comportamenti personalizzati, controller Java per script web sono qui. Se non sai di cosa si tratta, non preoccuparti, ci sono dei tutorial disponibili qui . Questi file verranno eventualmente inseriti in un JAR. Quando AMP è installato in Alfresco WAR, il JAR si troverà all'interno di WEB-INF/lib .
  • src/test Tutto all'interno di src/test è correlato all'esecuzione del test. Gli unit test stessi si trovano in src/test/java . Tutte le risorse necessarie a queste classi saranno in src/test/resources. All'interno di src/test/properties/local vedrai un file alfresco-global.properties . Se sai già qualcosa di Alfresco sai che viene utilizzato per configurare il server Alfresco. In questo caso, viene utilizzato solo per eseguire il server incorporato, a scopo di test.
  • src/main/amp Tutto il resto è da qualche parte in questa parte del progetto. La struttura AMP è così ben documentata che non voglio duplicarla qui. Mi limiterò a sottolineare i punti principali:
    • Il file module.properties indica ad Alfresco ciò che deve sapere su AMP, ad esempio ID, versione, versione minima e massima di Alfresco richiesta per eseguire AMP e qualsiasi altro AMP con le stesse dipendenze.
    • La directory config/alfresco/module/someco-mvn-tutorial-repo è il cuore di AMP. Il luogo in cui inserirai le configurazioni dei file Spring XML, il modello di contenuto dei file XML e la configurazione dell'interfaccia utente. Come vedrai più avanti, preferisco separare le sottodirectory per ciascuna di queste cose.
    • Se il tuo modulo include script web o flussi di lavoro, questi non sono contenuti nella directory dei moduli. Si trovano invece in config/alfresco/extension/templates/webscripts e config/alfresco/extension/workflows .
    • Il tuo modulo può includere risorse client che devono essere distribuite nella root dell'applicazione web. Si trovano in src/main/amp/web nelle directory css, jsp, script e immagini.
Dovresti controllare l'intero progetto nel controllo del codice sorgente. Potresti voler configurare il tuo client di controllo della versione per ignorare la directory di destinazione e la directory alf_data_dev.
Ora capisci come creare un progetto per le impostazioni a livello di repository. Diamo un'occhiata al livello di condivisione. Come parte di ciò, mostrerò un'altra opzione per creare un progetto senza uscire da Eclipse.

Creazione di un progetto adattato per l'accesso alla condivisione

In primo luogo, è necessario comprendere che la struttura di un progetto creato a livello di repository è esattamente la stessa di un progetto per un livello di accesso alla condivisione adattato. Nel futuro dell'SDK di Alfresco Maven, ci sono due cose che contraddistinguono il progetto Share: le dipendenze del progetto e AMP WAR saranno integrati.

Dipendenze generali del progetto

Fermiamoci un attimo e parliamo di gestione delle dipendenze. Al momento, l'implementazione è tale che per impostazione predefinita l'archetipo configurato nel progetto pom.xml utilizza le dipendenze dell'artefatto del repository alfresco. I progetti condivisi non hanno questa dipendenza. Il fatto è che molti progetti condivisi non utilizzano affatto Java. Ora modifichiamo pom.xml e rimuoviamo le dipendenze del repository alfresco. Ciò farà sì che i componenti demo e le classi di test associate generino un errore una volta compilati. Possono essere rimossi.

Obiettivo di GUERRA

Un'altra cosa che distingue il progetto Share è la WAR in cui viene distribuito AMP. Invece di WAR all'aperto, qui è necessario eseguire la distribuzione su Share WAR. Questo è configurato nella proprietà alfresco.client.war nel tuo pom.xml. Per impostazione predefinita è impostato su "alfresco". Per un progetto Condividi, è necessario sostituirlo con "condividi".

Proviamo questo: creare un progetto Share utilizzando un archetipo

Creiamo un nuovo progetto con Impostazioni generali. Puoi andare alla riga di comando ed eseguire lo stesso comando archetype eseguito in precedenza, meno il nuovo artifactId, quindi modificare la proprietà alfresco.client.war in "share". Se non stai utilizzando Eclipse, vai avanti e fallo ora e salta la sezione successiva.
Un'altra opzione è configurare Eclipse in modo da poter creare un nuovo progetto Alfresco utilizzando Alfresco Maven SDK senza uscire dall'IDE. Facciamolo.
  1. File, nuovo progetto Maven.
  2. Selezionare la directory che contiene la directory del progetto "repo", fare clic su Avanti.
    Iniziare con Maven Alfresco SDK parte 2 - 4
  3. Fare clic su Configura e possiamo aggiungere la directory Alfresco all'elenco.
    Iniziare con Maven Alfresco SDK parte 2 - 5
  4. Fare clic su Aggiungi catalogo remoto
  5. Selezionare "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" come file di catalogo. Selezionare la descrizione "Archetipi all'aperto". Successivamente, fai clic su OK e di nuovo su OK più vicino al pannello Preferenze.
    Iniziare con Maven Alfresco SDK parte 2 - 6
  6. Ora seleziona "Alfresco Archetypes" nella directory e vedrai un gruppo di archetipi nell'elenco.
  7. Seleziona "org.alfresco.maven.archetype" e gli stessi due archetipi appariranno nel filtro come all'inizio del tutorial.
  8. Seleziona alfresco-amp-archetype e fai clic su Avanti.
    Iniziare con Maven Alfresco SDK parte 2 - 7
  9. Selezionando "com.someco" per groupId, "someco-mvn-tutorial-share" come artifactId e modifica alfresco_target_amp_client_war in "share". Fare clic su Fine.
    Iniziare con Maven Alfresco SDK parte 2 - 8
Il tuo progetto Condividi è ora nell'area di lavoro. La prossima volta che creerai un nuovo progetto utilizzando l'archetipo, saranno necessari meno passaggi perché non sarà necessario aggiungere una directory.

Comprendere la struttura della directory di Share Access

Come ho detto prima, la struttura di questo progetto è esattamente la stessa del nostro progetto repo. L'unica differenza è che nel progetto repository cose come gli script web si trovano in src/main/amp/config/alfresco/extension/templates/webscripts, mentre nel progetto Generale si troveranno in src/main/amp/config/alfresco /estensione-web/script-web-sito.

Avvio dei test interni su Share

Spesso lavorerai su entrambi i livelli di impostazione contemporaneamente. Il tuo livello Generale necessita di un archivio per i messaggi. Un modo per farlo è dire a Maven di avviare il progetto di repository utilizzando:
cd someco-mvn-tutorial-repo
mvn test di integrazione -Pamp-to-war
E poi esegui il tuo progetto Share utilizzando:
cd someco-mvn-tutorial-share
mvn test di integrazione -Pamp-to-war -Dmaven.tomcat.port=8081
Una volta che entrambi i server sono attivi, puoi aprire http://localhost:8081/share ed effettuare il login per testare il tuo modulo.

Gestione delle dipendenze

La cosa bella di Apache Maven è che gestisce le dipendenze del tuo progetto per te. Tutto quello che devi fare è comunicarlo a Maven configurando il tuo pom.xml. Per impostazione predefinita, Alfresco Maven SDK crea due dipendenze per il tuo progetto: alfresco-repository e junit.
Come ho scritto in precedenza, il progetto Alfresco Share non dipende dal repository Alfresco, quindi per il progetto someco-mvn-tutorial-share queste dipendenze possono essere rimosse. Ma cosa succede se voglio inserire alcuni elementi Java nel mio progetto Share, ad esempio script Web basati su Java? In questo caso, dobbiamo aggiungere le dipendenze.
Gli script Web possono essere eseguiti a qualsiasi livello. Se scrivi script web basati su Java nel tuo progetto repo, la classe verrà creata perché le dipendenze dell'artefatto alfresco-repository dipendono a loro volta dall'artefatto spring-webscripts. Puoi vederlo se apri la gerarchia delle dipendenze in Eclipse nel tuo file pom.xml:
Gerarchia delle dipendenze in Eclipse
Gerarchia delle dipendenze in Eclipse Un'altra opzione. Puoi vedere la gerarchia delle dipendenze eseguendo:
Dipendenza mvn:list
Pertanto, per aggiungere script web basati su Java al tuo progetto Share, dobbiamo aggiungere spring-webscripts come dipendenza. Puoi farlo modificando pom.xml in questo modo:
<dipendenza>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>script web primaverili</artifactId>
    <versione>1.2.0-M14</versione>
    <scope>fornito</scope>
</dipendenza>
Ora gli script web basati su Java saranno in grado di trovare la loro classe genitore: DeclarativeWebScript.
Forse ti starai chiedendo come facevi a sapere che la classe DeclarativeWebScript era inclusa nell'artefatto spring-webscripts. Bene, ad esempio, averlo trovato andando su http://artifacts.alfresco.com . Puoi effettuare la ricerca per classe e ti verranno mostrati tutti gli artefatti che la contengono.

Altri argomenti per lo studio indipendente

Ora sai come utilizzare Alfresco Maven SDK per creare progetti e come repository Alfresco e configurare Alfresco Share. Se sei nuovo nello sviluppo di Alfresco, spero che sarai d'accordo sul fatto che è davvero facile mettere insieme un progetto per iniziare. Se hai già familiarità con Alfresco ma stai ancora utilizzando i vecchi SDK, spero che questo ti motivi a passare al nuovo SDK per creare i tuoi AMP.
Ci sono molti argomenti che non sono stati trattati in questo tutorial. Li lascerò esplorare a tua discrezione. Ecco qui alcuni di loro:
  • Alfresco Maven SDK supporta il ricaricamento delle classi dinamiche se utilizzato insieme a uno strumento chiamato JRebel .
  • Questo tutorial copre l'archetipo AMP. Ma Alfresco Maven SDK include un altro archetipo chiamato All-in-One. Questo archetipo ti offre un'installazione Alfresco completa che include SOLR.
  • Alfresco Maven SDK è supportato sia nella Community Edition che nella Enterprise Edition. Se hai bisogno di assistenza per accedere agli artefatti in Enterprise Edition, contatta il supporto di Alfresco.

Dove trovare maggiori informazioni

<= Parte 1
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION