Project creation

Cette page a pour but d’informer sur la mise en place d’un projet Delivery avec une version 15 et plus de Process. Il est conseillé de suivre toutes les étapes pour assurer une cohérence entre les différents projets existants, et permettre ainsi une meilleure reprise.

Version du JDK

Il est conseillé d’utiliser la même version que Process, pour simplifier il est possible de pointer directement sur le dossier jdk présent à la racine de l’installation de Process.

  • Process 2009/2010 : JDK Oracle 5
  • Process 2011 à 15.x : JDK Oracle 7
  • Process 16.x : JDK Oracle 8
  • Process 17.0 : OpenJDK 8

Configuration de Maven

Il est conseillé d’utiliser la version embarquée par IntelliJ afin de simplifier la configuration. Bundled (Maven 3)

Le fichier .m2/setting.xml doit être comme suit :

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  
 <profiles>
  <profile>
   <id>repository.devops.moovapps.com</id>
   
   <repositories>
       <repository>
     <id>java-moovapps-public</id>
     <url>https://repository.devops.moovapps.com/repository/java-moovapps-public/</url>
     <releases>
      <enabled>true</enabled>
     </releases>
     <snapshots>
      <enabled>true</enabled>
     </snapshots>
    </repository>
    <repository>
     <id>java-moovapps-private</id>
     <url>https://repository.devops.moovapps.com/repository/java-moovapps-private/</url>
     <releases>
      <enabled>true</enabled>
     </releases>
     <snapshots>
      <enabled>true</enabled>
     </snapshots>
    </repository>
   </repositories>
   
   <pluginRepositories>
    <pluginRepository>
     <id>java-moovapps-private-plugins</id>
     <url>https://repository.devops.moovapps.com/repository/java-moovapps-private/</url>
     <releases>
      <enabled>true</enabled>
     </releases>
     <snapshots>
      <enabled>true</enabled>
     </snapshots>
    </pluginRepository>
   </pluginRepositories>
  </profile>
 </profiles>
 
 <activeProfiles>
  <activeProfile>repository.devops.moovapps.com</activeProfile>
 </activeProfiles>
  
</settings>

Structure du projet

Un outil de création de projet rapide a été créé et est disponible ici.

Pour un déploiement fonctionnel, le projet vide doit se présenter ainsi :

Structure de projet SDK Structure de projet SDK

Le fichier home.properties doit contenir le chemin vers le dossier destiné à contenir le déploiement :

VDOC_HOME=C:/MyPath

Le fichier custom/resources/*-delivery.xml doit être de la forme suivante :

<?xml version="1.0" encoding="UTF-8"?>
<delivery product-version="16.4.0" version="1.0.0">
    <title>client-projet</title>
    <description>Description du projet</description>
    <category>project</category>
</delivery>

Le fichier pom.xml varie selon la version de Process (identique depuis la V17 mis à par la version du SDK) :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
        <groupId>com.vdoc.engineering</groupId>
        <artifactId>sdk.advanced</artifactId>
        <version>15.5.0</version>
    </parent>
    
    <artifactId>client.projet</artifactId>
    <groupId>com.vdoc.services</groupId>
    <version>1.0.0</version>
    
    <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies></dependencies>
    
    <profiles>
        <profile>
            <id>packager</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.vdoc.maven</groupId>
                        <artifactId>vdoc-maven-plugin</artifactId>
                        <version>15.0.0</version>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
        <groupId>com.vdoc.engineering</groupId>
        <artifactId>sdk.advanced</artifactId>
        <version>16.4.0</version>
    </parent>
    
    <artifactId>client-projet</artifactId>
    <groupId>com.vdoc.services</groupId>
    <version>1.0.0</version>
    
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies></dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
        <groupId>com.vdoc.engineering</groupId>
        <artifactId>sdk.advanced</artifactId>
        <version>17.2.1</version>
    </parent>
    
    <artifactId>client-projet</artifactId>
    <groupId>com.vdoc.services</groupId>
    <version>1.0.0</version>
    
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies></dependencies>

    <profiles>
        <profile>
            <id>packager</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>
</project>

Il convient d’activer tous les profiles, sauf deployer qui est facultatif (réalise un déploiement automatique sur l’instance ciblée par home.properties).

Pour éviter les envoies inutiles de fichiers sur le gestionnaire de version, un fichier .gitignore est conseillé, dont voici un exemple standard :

.gitignore
.idea/
target/
home.properties
*.iml

Débogage

Depuis Process16.0.0, le fichier script/custom/var.bat possède une variable DEBUG_MODE et une variable DEBUG_PORT_VAR :

Debug mode Debug mode

Depuis IntelliJ, il est alors possible d’acitver le mode de débogage à distance avec les informations renseignées dans le script :

Remote debug Remote debug

Sources :