custom:development_artifactory_deploy_template

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
custom:development_artifactory_deploy_template [2020/03/26 12:11]
mariasole.angelucci
custom:development_artifactory_deploy_template [2022/11/28 16:51] (versione attuale)
giorgio.scali
Linea 1: Linea 1:
 ====== Dispiegamento di un template su Artifactory ====== ====== Dispiegamento di un template su Artifactory ======
  
-[spiega come da un progetto di geoweb ​si possa creare un template su artifactory, ​che poi sarà richiamabile nelle varie maven build. Sia tramite .bat (per i configuratori=> link a guida specifica), che tramite eclipse (creare un nuovo plugin di geoweb da eclipse partendo ​da un template ​scaricato da artifactory)]+Ogni volta che si ha una struttura Maven che ci si ritrova ad utilizzare spessopotrebbe essere una buona idea generare ​da essa un template ​su Artifactory.
  
-Una volta creato ​un nuovo progetto ​Maven che rappresenta ​un plugin di Geoweb, si deve associare ad esso un template ​su Artifactorytramite il procedimento descritto ​di seguitoSi ricorda ​che, ad ogni nuovo plugin, ​deve anche essere ​associato ​un nuovo branch su Gitlab+ 
-  ​Come prima cosa, è necessario creare il file JAR del progetto utilizzando Eclipse. Dopo aver eseguito il //clean// del progetto Maven, cliccare con il tasto destro sulla cartella del progetto, selezionare **Run As** e poi **Maven install**; in questo modo verrano compilati tutti i file sorgente e, nella sezione **Project explorer** del progetto, verrà creata la cartella ​Target, contenente ​file JAR. +===== Vantaggi Sviluppatori ===== 
-  ​A questo punto, entrare nella cartella del proprio ​pc contenente il branch ​locale di Git dove si sta lavorando al nuovo plugin e, al suo interno, aprire il prompt dei comandi ed eseguire il seguente: <​code>​mvn archetype:​create-from-project</​code>​ + 
-  ​Il passo successivo è la sostituzione di alcuni file all'​interno dell'​archivio JAR che è stato generato nel percorso {git_plugin_directory}\target\generated-sources\archetype\target. In questo percorso è presente un file dal nome {nome_plugin}-archetype-{versione_plugin}.jar. Aprire l'​archivio JAR con un'​applicazione per la decompressione degli archivi (ad esempio 7zip) e spostarsi nel percorso ​ META-INF\maven:​ qui dentro, sostituire il contenuto del file archetype-metadata.xml con ciò che segue: <code xml>+  * Poter tirare su un nuovo ambiente di lavoro, senza tirarsi giù l'​intero codice sorgente di geoweb, ma semplicemente creando ​un nuovo progetto ​da template maven e configurandoselo. Il vantaggio è di lavorare con una black-box, avere un ambiente di sviluppo più snello, non oberato dai continui build del codice eseguiti da Eclipse 
 +  * Poter disporre rapidamente di una base funzionante per creare un qualsivoglia nuovo plugin 
 + 
 + 
 +===== Vantaggi Configuratori ===== 
 + 
 +  * avere la possibilità agli utenti configuratori ​di autoprodursi il war seguendo la procedura guidata automatizzata descritta quipensando solo alla parte di configurazione,​ alla versione di geoweb e da quali plugin utilizzare 
 + 
 + 
 +===== Esempi Template ===== 
 +  * **gw-webapp-template** (**webclientTemplate**,​ pre 4.6.X), rappresenta lo scheletro di una generica webapp di geoweb, dove sono presenti solo tutte le parti configurabili,​ ed il pom.xml dove si possono includere tutte le dipendenze necessarie (recuperate da repository pubblici o da artifactory). Questo progetto maven è gia stato configurato in quest'​ottica dentro il codice sorgente dalla versione 4.4.3. E' stato quindi reso disponibile questo template maven tramite Artifactry. Ora può essere usato da uno sviluppatore esterno a geoweb che, non volendo tirarsi giù l'​intero codice, potrebbe far girare geoweb o prodursi ​un war semplicemente creando un nuovo progetto da template ​maven e configurandoselo. Il vantaggio è di lavorare con una black-boxavere un ambiente ​di sviluppo più snello, non oberato dai continui build del codice eseguiti da EclipseIl fatto che questo progetto sia anche un template maven ospitato in artifactry è anche basilare per dare la possibilità agli utenti configuratori di autoprodursi il war seguendo la procedura guidata automatizzata descritta qui. 
 +  * **gwPlugin**rappresenta lo scheletro di un generico ​plugin ​di geowebgià formato nella struttura dei package e dei file di configurazione. E' pensato per essere ​usato dagli sviluppatori,​ interni ed esterni, come una buona base di partenza per produrre velocemente ​un nuovo plugin per geoweb. Di norma va usato in congiunzione con webclientTemplate. 
 + 
 + 
 +===== Procedura ===== 
 + 
 +  ​Come prima cosa, è necessario creare il file JAR del progetto utilizzando Eclipse. Dopo aver eseguito il //clean// del progetto Maven, cliccare con il tasto destro sulla cartella del progetto, selezionare **Run As** e poi **Maven install**; in questo modo verrano compilati tutti i file sorgente e, nella sezione **Project explorer** del progetto, verrà creata la cartella ​//target//, contenente ​il file JAR . 
 +  ​A questo punto, entrare nella cartella del proprio ​PC contenente il repository ​locale di Git dove si sta lavorando al nuovo plugin e, al suo interno, aprire il prompt dei comandi ed eseguire il seguente: <​code>​mvn archetype:​create-from-project</​code>​ 
 +  ​Il passo successivo è la sostituzione di alcuni file all'​interno dell'​archivio JAR che è stato generato nel percorso ​**{git_plugin_directory}\target\generated-sources\archetype\target**. In questo percorso è presente un file dal nome **{nome_plugin}-archetype-{versione_plugin}.jar**. Aprire l'​archivio JAR con un'​applicazione per la decompressione degli archivi (ad esempio 7zip) e spostarsi nel percorso ​**META-INF\maven**: qui dentro, sostituire il contenuto del file **archetype-metadata.xml** con ciò che segue: <code xml>
 <?xml version="​1.0"​ encoding="​UTF-8"?>​ <?xml version="​1.0"​ encoding="​UTF-8"?>​
-<​archetype-descriptor ​ +<​archetype-descriptor xsi:​schemaLocation="​https://​maven.apache.org/​plugins/​maven-archetype-plugin/​archetype-descriptor/​1.1.0 http://​maven.apache.org/​xsd/​archetype-descriptor-1.1.0.xsd"​ name="gw-webapp-template
-        ​xsi:​schemaLocation="​https://​maven.apache.org/​plugins/​maven-archetype-plugin/​archetype-descriptor/​1.1.0 ​ + xmlns="​https://​maven.apache.org/​plugins/​maven-archetype-plugin/​archetype-descriptor/​1.1.0"​ 
-        ​http://​maven.apache.org/​xsd/​archetype-descriptor-1.1.0.xsd"​ name="webclientTemplate+ xmlns:​xsi="​http://​www.w3.org/​2001/​XMLSchema-instance">​ 
-        xmlns="​https://​maven.apache.org/​plugins/​maven-archetype-plugin/​archetype-descriptor/​1.1.0"​ + <​requiredProperties>​ 
-        xmlns:​xsi="​http://​www.w3.org/​2001/​XMLSchema-instance">​ + <​requiredProperty key="​warName">​ 
-     ​<​requiredProperties>​ + <​defaultValue>​webclient</​defaultValue>​ 
-          <​requiredProperty key="​warName">​ + </​requiredProperty>​ 
-                <​defaultValue>​webclient</​defaultValue>​ + <​requiredProperty key="​gwVersion">​ 
-          </​requiredProperty>​ + </​requiredProperty>​ 
-          <​requiredProperty key="​gwVersion">​ + </​requiredProperties>​ 
-          </​requiredProperty>​ + <​fileSets>​ 
-     ​</​requiredProperties>​ + <fileSet filtered="​true"​ encoding="​UTF-8">​ 
-     ​<​fileSets>​ + <​directory>​src/​main/​resources</​directory>​ 
-          <fileSet filtered="​true"​ encoding="​UTF-8">​ + <​includes>​ 
-                <​directory>​src/​main/​resources</​directory>​ + <​include>​**/​*.txt</​include>​ 
-                <​includes>​ + <​include>​**/​*.xml</​include>​ 
-                      <​include>​**/​*.txt</​include>​ + <​include>​**/​*.properties</​include>​ 
-                      <​include>​**/​*.xml</​include>​ + </​includes>​ 
-                      <​include>​**/​*.properties</​include>​ + </​fileSet>​ 
-                </​includes>​ + <fileSet filtered="​true"​ encoding="​UTF-8">​ 
-          </​fileSet>​ + <​directory>​src/​main/​webapp</​directory>​ 
-          <fileSet filtered="​true"​ encoding="​UTF-8">​ + <​includes>​ 
-                <​directory>​src/​main/​webapp</​directory>​ + <​include>​**/​*.xml</​include>​ 
-                <​includes>​ + </​includes>​ 
-                      <​include>​**/​*.xml</​include>​ + </​fileSet>​ 
-                </​includes>​ + <fileSet encoding="​UTF-8">​ 
-          </​fileSet>​ + <​directory>​src/​main/​resources</​directory>​ 
-          <fileSet encoding="​UTF-8">​ + <​includes>​ 
-                <​directory>​src/​main/​resources</​directory>​ + <​include>​**/​*.ini</​include>​ 
-                <​includes>​ + </​includes>​ 
-                      <​include>​**/​*.ini</​include>​ + </​fileSet>​ 
-                </​includes>​ + <fileSet encoding="​UTF-8">​ 
-          </​fileSet>​ + <​directory>​src/​main/​webapp</​directory>​ 
-          <fileSet encoding="​UTF-8">​ + <​includes>​ 
-                <​directory>​src/​main/​webapp</​directory>​ + <​include>​**/​*.tld</​include>​ 
-                <​includes>​ + </​includes>​ 
-                      <​include>​**/​*.tld</​include>​ + </​fileSet>​ 
-                </​includes>​ + <fileSet encoding="​UTF-8">​ 
-          </​fileSet>​ + <​directory></​directory>​ 
-          <​fileSet ​filtered="​true" ​encoding="​UTF-8">​ + <​includes>​ 
-                <​directory>​.settings</​directory>​ + <​include>​makegwar.bat</​include>​ 
-                <​includes>​ + </​includes>​ 
-                      <​include>​**/​*.xml</​include>​ + </​fileSet>​ 
-                </​includes>​ + </​fileSets>​
-          </​fileSet>​ +
-          <fileSet encoding="​UTF-8">​ +
-                <​directory>​.settings</​directory>​ +
-                <​includes>​ +
-                      <​include>​**/​*.container</​include>​ +
-                      <​include>​**/​*.component</​include>​ +
-                      <​include>​**/​*.name</​include>​ +
-                      <​include>​**/​*.jsdtscope</​include>​ +
-                      <​include>​**/​*.prefs</​include>​ +
-                </​includes>​ +
-          </​fileSet>​ +
-          <fileSet filtered="​true"​ encoding="​UTF-8">​ +
-                <​directory></​directory>​ +
-                <​includes>​ +
-                      <​include>​.classpath</​include>​ +
-                      ​<​include>​.project</​include>​ +
-                </​includes>​ +
-          </​fileSet>​ +
-     ​</​fileSets>​+
 </​archetype-descriptor>​ </​archetype-descriptor>​
 +
 +
 </​code>​ </​code>​
-  ​- Infine, sempre ​all'​interno dell'​archivio {nome_plugin}-archetype-{versione_plugin}.jar,​ aprire il file pom.xml nella cartella archetype-resources e sostituire ​le righe <code xml> +  ​* Sempre ​all'​interno dell'​archivio ​**{nome_plugin}-archetype-{versione_plugin}.jar**, aprire il file **pom.xml** nella cartella archetype-resources e sostituire ​la riga <code xml> 
-<​finalName>​webclient</​finalName> ​+<​finalName>​nome_plugin</​finalName></​code>​ con <code xml> 
 +<​finalName>​${warName}</​finalName></​code>​ e la riga <code xml>
 <​com.geowebframework.version>​4.4.3</​com.geowebframework.version></​code>​ con <code xml> <​com.geowebframework.version>​4.4.3</​com.geowebframework.version></​code>​ con <code xml>
-<​finalName>​${warName}</​finalName>​ 
 <​com.geowebframework.version>​${gwVersion}</​com.geowebframework.version></​code>​ <​com.geowebframework.version>​${gwVersion}</​com.geowebframework.version></​code>​
 +  * Infine, andare sul sito di Artifactory seguendo il link [[http://​artifactory.geowebframework.com/​artifactory/​webapp/#/​artifacts/​browse/​tree/​General/​gw-release]] e accedere con le proprie credenziali. Come mostrato in figura, sulla sinistra del sito si può trovare un albero di contenuti: aprire **gw-release** e cliccare sul pulsante **Deploy**, che si trova in alto a destra. {{ :​custom:​artifactory_deploy_img1.png?​400 |}}Dalla finestra che si apre, è possibile caricare il file **{nome_plugin}-archetype-{versione_plugin}.jar**,​ avendo cura di cambiare il groupId con "​com.geowebframework"​ e di abilitare tutte le spunte disponibili;​ per terminare la procedura, cliccare infine **Deploy**. Si può, a questo punto, verificare il caricamento del progetto nel giusto percorso all'​interno di gw-release.
  • custom/development_artifactory_deploy_template.1585221062.txt.gz
  • Ultima modifica: 2020/03/26 12:11
  • da mariasole.angelucci