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.
- 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.
- Eclipse mostrerà le impostazioni del pannello plug-in Maven. Puoi tranquillamente ignorarlo ora. Fare clic su Fine.
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 (versione set)
Per risolvere:
- Fare clic con il tasto destro sull'errore e selezionare "Correzione rapida".
- Selezionando "Contrassegna permanentemente la versione del set di obiettivi in pom.xml come ignorata nella build di Eclipse". Pronto.
- 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.
- Fare clic con il tasto destro sul progetto e selezionare Maven, Aggiorna progetto.
- Assicurati che il progetto sia selezionato e fai clic su OK.
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.
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.
- File, nuovo progetto Maven.
- Selezionare la directory che contiene la directory del progetto "repo", fare clic su Avanti.
- Fare clic su Configura e possiamo aggiungere la directory Alfresco all'elenco.
- Fare clic su Aggiungi catalogo remoto
- 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.
- Ora seleziona "Alfresco Archetypes" nella directory e vedrai un gruppo di archetipi nell'elenco.
- Seleziona "org.alfresco.maven.archetype" e gli stessi due archetipi appariranno nel filtro come all'inizio del tutorial.
- Seleziona alfresco-amp-archetype e fai clic su Avanti.
- Selezionando "com.someco" per groupId, "someco-mvn-tutorial-share" come artifactId e modifica alfresco_target_amp_client_war in "share". Fare clic su Fine.
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-warE poi esegui il tuo progetto Share utilizzando:
cd someco-mvn-tutorial-share mvn test di integrazione -Pamp-to-war -Dmaven.tomcat.port=8081Una 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 Un'altra opzione. Puoi vedere la gerarchia delle dipendenze eseguendo:
Dipendenza mvn:listPertanto, 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
- La documentazione ufficiale per Alfresco Maven SDK si trova all'indirizzo http://docs.alfresco.com .
- Una documentazione più dettagliata sull'SDK di Alfresco Maven è disponibile su artifacts.alfresco.com .
- Presentazione Gab all'Alfresco Summit Test-driven, sviluppo rapido e fornitura continua di soluzioni Alfresco
- Instant Apache Maven Starter Il libro di Maurizio Turatti e Maurizio Pillitu può essere un'ottima risorsa se sei interessato a saperne di più su Apache Maven.
- Introduzione allo sviluppo di Alfresco Presentazione di Gethin James dell'Alfresco Summit
- Alfresco Developer Series su ECM Architect contiene tutorial gratuiti su modelli di contenuto, azioni, comportamenti, flussi di lavoro e script Web personalizzati.
GO TO FULL VERSION