Select Git revision
CMakeLists.txt
-
Franck Dary authoredFranck Dary authored
pom.xml 16.59 KiB
<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>
<groupId>fr.univtln.bruno.samples.jee91</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Demo JakartaEE</name>
<modules>
<module>entites</module>
<module>utils</module>
<module>jee</module>
<module>websocketClient</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.release>11</maven.compiler.release>
<!-- The default value is changed to `false` since maven-war-plugin 3.0.0 -->
<failOnMissingWebXml>false</failOnMissingWebXml>
<!-- Cargo maven plugin to deploy apps to Glassfish/Payara servers -->
<cargo-maven3-plugin.version>1.9.8</cargo-maven3-plugin.version>
<!-- Jakarta EE API 9.1.0 with Java 11 -->
<jakarta.jakartaee-api.version>9.1.0</jakarta.jakartaee-api.version>
<h2.version>1.4.200</h2.version>
<!-- Arquillian 1.7.0 adds Jakarta EE 9 and JUnit 5 support-->
<arquillian-bom.version>1.7.0.Alpha10</arquillian-bom.version>
<junit-jupiter.version>5.8.2</junit-jupiter.version>
<!-- Tests -->
<mockito.version>4.1.0</mockito.version>
<hamcrest.version>2.2</hamcrest.version>
<!-- Payara server -->
<payara.version>6.2021.1.Alpha1</payara.version>
<arquillian-payara.version>3.0.alpha2</arquillian-payara.version>
<!-- Weld for embedded CDI -->
<arquillian-weld-embedded.version>3.0.2.Final</arquillian-weld-embedded.version>
<weld.version>4.0.2.Final</weld.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- JEE -->
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakarta.jakartaee-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
<artifactId>jackson-jakarta-rs-json-provider</artifactId>
<version>2.13.0</version>
<exclusions>
<exclusion>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- TEST -->
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit-jupiter.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<!-- Override dependency resolver with latest version.
This must go *BEFORE* the Arquillian BOM. -->
<!--dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-bom</artifactId>
<version>3.1.4</version>
<scope>import</scope>
<type>pom</type>
</dependency-->
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.7.0.Alpha10</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>fish.payara.arquillian</groupId>
<artifactId>arquillian-payara-server-embedded</artifactId>
<version>2.4.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>fish.payara.extras</groupId>
<artifactId>payara-embedded-all</artifactId>
<version>${payara.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-weld-embedded</artifactId>
<version>${weld.version}</version>
<exclusions>
<exclusion>
<groupId>jakarta.ejb</groupId>
<artifactId>jakarta.ejb-api</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.4.2.Final</version>
<exclusions>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-processor</artifactId>
<version>3.4.2.Final</version>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-annotations</artifactId>
<version>2.2.1.Final</version>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<excludes>
<exclude>**/it/**</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M4</version>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>**/it/**</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.8</version>
</requireMavenVersion>
<!--dependencyConvergence /-->
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.9.1</version>
</plugin>
<!--Sonarquve -->
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.9.1.2184</version>
</plugin>
<plugin>
<groupId>io.github.r0bb3n</groupId>
<artifactId>sonar-quality-gate-maven-plugin</artifactId>
<version>1.1.0</version>
</plugin>
<!-- This plugins implements the gitflow branching model (http://nvie.com/git-model,
https://www.atlassian.com/git/tutorials/comparing-workflows/#!workflow-gitflow )
for maven. It gives an automatic way to manage versions and branches.
https://bitbucket.org/atlassian/jgit-flow/wiki/Home
mvn jgitflow:feature-start:
creates a new feature branch; pushes the branch to origin automatically (can be shared and
used by jenkins).
mvn jgitflow:feature-finish:
merges the feature branch back into the development branch and pushes to origin.
The good way :
git fetch : make sure your local repo copy is up-to-date
git checkout development : go to development
git merge origin/development : make sure your local develop is up-to-date (origin being the remote's name here)
git checkout <feature-branch> : go to you feature branch again
git merge develop : Merge and solve conflicts, if any (on you feature branch)
mvn jgitflow:feature-finish you already solved the conflicts
mvn jgitflow:release-start:
creates a release branch (freeze to prepare a release, only bugfix, documentation
and translation) and pushes it to origin.
mvn jgitflow:release-finish:
builds, tags and merges the release branch back into master and development;
updates versions in master and development branches
mvn jgitflow:hotfix-start: like mvn jgitflow:release-start but branches off of master
mvn jgitflow:hotfix-finish: like mvn jgitflow:release-finish
We forbid deploy from the workstations, it has to be done by the C.I. server.
-->
<plugin>
<groupId>external.atlassian.jgitflow</groupId>
<artifactId>jgitflow-maven-plugin</artifactId>
<version>1.0-m5.1</version>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
</dependencies>
<configuration>
<!-- Enable this to push to origin using SSH keys -->
<enableSshAgent>true</enableSshAgent>
<!-- Keep your maven submodules at the same version as the parent POM -->
<autoVersionSubmodules>true</autoVersionSubmodules>
<!-- Pushing in-development features to origin allows all devs to see what each other
are working on -->
<!--pushFeatures>true</pushFeatures-->
<!-- This allows the CI server (e.g. Jenkins) to automatically push new releases to
origin; you can then either manually deploy them or, if you are doing Continuous
Deployments, auto-deploy them to prod -->
<!--pushReleases>true</pushReleases-->
<!--pushHotfixes>true</pushHotfixes-->
<!-- append the feature name to the version on the feature branch. -->
<enableFeatureVersions>true</enableFeatureVersions>
<!-- Prevents deployments from dev workstations so that they can be done by a CI
server -->
<noDeploy>true</noDeploy>
<!-- Whether to squash commits into a single commit before merging. -->
<squash>false</squash>
<scmCommentPrefix>[gitflow]</scmCommentPrefix>
<!-- A VOIR -->
<featureRebase>true</featureRebase>
<!--pullDevelop>true</pullDevelop>
<pullMaster>true</pullMaster-->
<flowInitContext>
<masterBranchName>master</masterBranchName>
<developBranchName>develop</developBranchName>
<featureBranchPrefix>feature/</featureBranchPrefix>
<releaseBranchPrefix>release/</releaseBranchPrefix>
<hotfixBranchPrefix>hotfix/</hotfixBranchPrefix>
<versionTagPrefix />
</flowInitContext>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
<repository>
<id>sonatype-nexus-staging</id>
<name>Sonatype Nexus Staging</name>
<url>https://jakarta.oss.sonatype.org/content/repositories/staging/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>payara-nexus</id>
<name>Payara Nexus Artifacts</name>
<url>https://nexus.payara.fish/repository/payara-artifacts/</url>
</repository>
</repositories>
</project>