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/04/16 14:27]
giorgio.scali
custom:development_artifactory_deploy_template [2022/11/28 16:51] (versione attuale)
giorgio.scali
Linea 2: Linea 2:
  
 Ogni volta che si ha una struttura Maven che ci si ritrova ad utilizzare spesso, potrebbe essere una buona idea generare da essa un template su Artifactory. Ogni volta che si ha una struttura Maven che ci si ritrova ad utilizzare spesso, potrebbe essere una buona idea generare da essa un template su Artifactory.
-Per esempio sono già stati generati questi template: 
-  * **webclientTemplate**,​ 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 in Artifactory. 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 scaricando e configurando il template. 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. L'​esistenza di questo template è 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 geoweb, già 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. Di norma va usato in congiunzione con webclientTemplate. 
  
-===== Procedura ===== 
  
 +===== Vantaggi Sviluppatori =====
  
 +  * 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 qui, pensando 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-box, avere un ambiente di sviluppo più snello, non oberato dai continui build del codice eseguiti da Eclipse. Il 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 geoweb, già 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 .   * 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>​   * 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>+  * 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>​
-  * 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>​nome_plugin</​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, 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.+  * 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.1587040045.txt.gz
  • Ultima modifica: 2020/04/16 14:27
  • da giorgio.scali