Compare commits

..

No commits in common. "master" and "feature/23893" have entirely different histories.

4 changed files with 151 additions and 394 deletions

4
.gitignore vendored
View File

@ -1,5 +1 @@
/target/
/.classpath
/*.project
/.settings
/.idea

View File

@ -1,27 +1,10 @@
# Changelog for Maven-Parent
## [v1.2.0] - 2024-04-03
### Bug
* update maven-javadoc-plugin to from 2.6.8 to 3.6.3. #25877
* update groovy-all plugin dependency from 3.0.0-beta to 3.0.13 #25872
### Features
* new maven profiles for managing jdk7 (gcore-legacy) and jdk17 build (see #24259)
* add new group repositories for managing jdk17 dependencies resolution
* update groovy-maven and javadoc plugin configuration #25108
* add classpath external folder. see #25106
### Bug
* removed set-local-classpath profile. see #26841
## [v1.1.0] - 2022-10-27
## [v1.1.0] - 2020-01-27
### Features
* force java 1.8 on jdk11 activation profiles
* update maven-compiler-plugin to 3.10.1
* New build profiles to support CI/CD
* add new execution phase to buildnumber-maven-plugin
* Enforcement for:
* Java 8 (target and source)
* OpenJDK as target Java VM.

View File

@ -3,7 +3,7 @@
A parent pom for all the gCube artifacts.
# Enforcements
* Java 8 (target and source) unless otherwise specified inside the pom
* Java 8 (target and source)
* OpenJDK as target Java VM.
* Maven 3.3.9+
* README.md, CHANGELOG.md and LICENSE.md are present in the baseDir of each Maven module
@ -11,41 +11,19 @@ A parent pom for all the gCube artifacts.
# Build Profiles
The build profiles are separated in three main branches: developer, staging, releases.
Each branch has a set of profile based on the idk.
The developer branch contains the profiles related to the snapshot build:
* gcore-legacy jdk7
* gcube-legacy - jdk8
* gcube-official -jdk11
* gcube-experimental - jdk17
In the same way are organised the other branch profiles related to the staging (integration) phase and to the release phase.
In addition there are a set of common profiles useful in order to avoid replication of plugins and rules definitions:
* common-snapshot
* common-release
* dry-run
* disable-java8-doclint
* set-local-classpath
* generate-distribution-packages
Below the descriptions of the most used profiles by gCube components:
## common-snapshot
This profile defines the common plugin used by all the snapshot profiles
## common-releases
This profile defines the common plugin used by all the staging and release profiles
## gcube-official
## gcube-developer
* Dependencies resolved against local, gcube-snapshots and gcube-releases
* Snapshot artifacts installed to local
* Snapshot artifacts deployed to gcube-snapshots
* Deployments of releases artifacts are not permitted
## jenkins-staging-official
## jenkins-snapshots
* Dependencies resolved against local-snapshots, gcube-snapshots and gcube-releases
* Snapshot artifacts installed to local-snapshots
* Snapshot artifacts deployed to gcube-snapshots
* Deployments of release artifacts are not permitted
## jenkins-staging
* Dependencies resolved against local-staging, gcube-jenkins-staging, gcube-staging and gcube-releases
* Release/snapshot artifacts installed to local-staging
* Release/snapshot artifacts deployed to gcube-jenkins-staging
@ -63,6 +41,3 @@ This profile disables the deployment of the artifacts.
This profile sets an additional parameter for javadoc generation to disables the doclint.
It avoids the build fails if formal/syntax errors are found in javadoc comments.
## set-local-classpath
This profile set a generic folder that will be added to the classpath

477
pom.xml
View File

@ -5,7 +5,7 @@
<groupId>org.gcube.tools</groupId>
<artifactId>maven-parent</artifactId>
<version>1.2.0</version>
<version>1.1.0</version>
<packaging>pom</packaging>
<scm>
@ -52,6 +52,18 @@
</releases>
</pluginRepository>
<pluginRepository>
<id>gcube-staging</id>
<name>gCube Staging</name>
<url>https://nexus.d4science.org/nexus/content/repositories/gcube-staging/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
<pluginRepository>
<id>gcube-externals</id>
<name>gCube Externals</name>
@ -78,20 +90,6 @@
<javadoc.opts>-Xdoclint:none</javadoc.opts>
</properties>
</profile>
<!--profile set-local-classpath commented see #26841-->
<!--profile>
<id>set-local-classpath</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<build>
<resources>
<resource>
<directory>${maven.local.classpath}</directory>
</resource>
</resources>
</build>
</profile-->
<profile>
<id>generate-distribution-packages</id>
<activation>
@ -240,7 +238,7 @@
<id>gcube-official</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>[9,17)</jdk>
<jdk>[1.8,9)</jdk>
<property>
<name>!Release</name>
</property>
@ -301,7 +299,7 @@
<id>gcube-experimental</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>[17,)</jdk>
<jdk>[9,)</jdk>
<property>
<name>!Release</name>
</property>
@ -311,7 +309,8 @@
<maven.compiler.source>${java_version}</maven.compiler.source>
<maven.compiler.target>${java_version}</maven.compiler.target>
</properties>
<!-- Repositories for dependency resolution -->
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-snapshots</id>
@ -325,9 +324,9 @@
</releases>
</repository>
<repository>
<id>gcube-releases-all</id>
<name>gCube Releases All</name>
<url>${repository.releases.all.url}</url>
<id>gcube-releases</id>
<name>gCube Releases</name>
<url>${repository.releases.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
@ -355,68 +354,17 @@
<url>${repository.snapshots.url}</url>
</repository>
</distributionManagement>
</profile>
<profile>
<id>gcore-legacy</id>
<activation>
<jdk>[, 1.8)</jdk>
<property>
<name>!Release</name>
</property>
</activation>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-snapshots</id>
<name>gCube Snapshots</name>
<url>${repository.snapshots.url}</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>gcube-releases-gcore</id>
<name>gCube Releases gCore</name>
<url>${repository.releases.gcore.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-externals</id>
<name>gCube Externals</name>
<url>${repository.externals.readonly}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
<id>gcube-snapshots</id>
<name>gCube Snapshots</name>
<url>${repository.snapshots.url}</url>
</repository>
</distributionManagement>
</profile>
<profile>
</profile>
<!-- The following profile prevent build with jdk minor than 8 -->
<profile>
<id>gcube-legacy</id>
<activation>
<jdk>[1.8,9)</jdk>
<jdk>[, 1.8)</jdk>
<property>
<name>!Release</name>
</property>
</activation>
</activation>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
@ -453,6 +401,7 @@
</releases>
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
@ -461,64 +410,9 @@
<url>${repository.snapshots.url}</url>
</repository>
</distributionManagement>
</profile>
</profile>
<profile>
<id>jenkins-releases-gcore-legacy</id>
<activation>
<jdk>[,1.8)</jdk>
<property>
<name>jenkins-releases</name>
<value>true</value>
</property>
</activation>
<properties>
<repository>${repository.releases.gcore.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-releases-gcore</id>
<name>gCube Releases</name>
<url>${repository.releases.gcore.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-externals</id>
<name>gCube Externals</name>
<url>${repository.externals.readonly}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-jenkins-staging-gcore</id>
<name>gCube Jenkins Staging</name>
<url>${repository.jenkins.staging.gcore.url}</url>
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
<id>gcube-releases-gcore</id>
<name>gCube Releases</name>
<url>${repository.releases.gcore.url}</url>
</repository>
</distributionManagement>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
</profile>
<profile>
<id>jenkins-releases-legacy</id>
<id>jenkins-releases</id>
<activation>
<jdk>[1.8,9)</jdk>
<property>
@ -526,66 +420,9 @@
<value>true</value>
</property>
</activation>
<properties>
<repository>${repository.releases.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-releases</id>
<name>gCube Releases</name>
<url>${repository.releases.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-externals</id>
<name>gCube Externals</name>
<url>${repository.externals.readonly}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-jenkins-staging</id>
<name>gCube Jenkins Staging</name>
<url>${repository.jenkins.staging.url}</url>
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
<id>gcube-releases</id>
<name>gCube Releases</name>
<url>${repository.releases.url}</url>
</repository>
</distributionManagement>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
</profile>
<profile>
<id>jenkins-releases</id>
<activation>
<jdk>[9,17)</jdk>
<property>
<name>jenkins-releases</name>
<value>true</value>
</property>
</activation>
<properties>
<java_version>1.8</java_version>
<maven.compiler.source>${java_version}</maven.compiler.source>
<maven.compiler.target>${java_version}</maven.compiler.target>
<repository>${repository.releases.url}</repository>
</properties>
<properties>
<repository>${repository.releases.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
@ -610,6 +447,11 @@
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-staging</id>
<name>gCube Staging</name>
<url>${repository.staging.url}</url>
</repository>
<repository>
<id>gcube-jenkins-staging</id>
<name>gCube Jenkins Staging</name>
@ -632,7 +474,7 @@
<profile>
<id>jenkins-releases-experimental</id>
<activation>
<jdk>[17,)</jdk>
<jdk>[9,17)</jdk>
<property>
<name>jenkins-releases</name>
<value>true</value>
@ -642,14 +484,14 @@
<java_version>1.8</java_version>
<maven.compiler.source>${java_version}</maven.compiler.source>
<maven.compiler.target>${java_version}</maven.compiler.target>
<repository>${repository.releases.next.url}</repository>
<repository>${repository.releases.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-releases-all</id>
<id>gcube-releases</id>
<name>gCube Releases</name>
<url>${repository.releases.all.url}</url>
<url>${repository.releases.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
@ -669,9 +511,9 @@
</releases>
</repository>
<repository>
<id>gcube-staging-all</id>
<name>gCube Staging All</name>
<url>${repository.staging.all.url}</url>
<id>gcube-jenkins-staging-java11</id>
<name>gCube Jenkins Staging Java11</name>
<url>${repository.jenkins.staging.java11.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
@ -679,22 +521,45 @@
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-staging</id>
<name>gCube Staging</name>
<url>${repository.staging.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-jenkins-staging</id>
<name>gCube Jenkins Staging</name>
<url>${repository.jenkins.staging.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
<id>gcube-releases-next</id>
<id>gcube-releases</id>
<name>gCube Releases</name>
<url>${repository.releases.next.url}</url>
<url>${repository.releases.url}</url>
</repository>
</distributionManagement>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
</profile>
</profile>
<profile>
<id>jenkins-staging-gcore-legacy</id>
<id>jenkins-staging-legacy</id>
<activation>
<jdk>[,1.8)</jdk>
<property>
@ -702,15 +567,15 @@
<value>true</value>
</property>
</activation>
<properties>
<repository>${repository.jenkins.staging.gcore.url}</repository>
</properties>
<properties>
<repository>${repository.staging.java7.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-staging-java7</id>
<name>gCube Staging Java7</name>
<url>${repository.jenkins.staging.java7.url}</url>
<url>${repository.staging.java7.url}</url>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
@ -722,7 +587,7 @@
<repository>
<id>gcube-staging-gcore</id>
<name>gCube Staging gCore</name>
<url>${repository.jenkins.staging.gcore.url}</url>
<url>${repository.staging.gcore.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
@ -743,67 +608,6 @@
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
<id>gcube-staging-gcore</id>
<name>gCube Staging gCore</name>
<url>${repository.jenkins.staging.gcore.url}</url>
</repository>
</distributionManagement>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
</profile>
<profile>
<id>jenkins-staging-legacy</id>
<activation>
<jdk>[1.8,9)</jdk>
<property>
<name>jenkins-staging</name>
<value>true</value>
</property>
</activation>
<properties>
<repository>${repository.staging.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-staging-jenkins</id>
<name>gCube Staging Jenkins</name>
<url>${repository.jenkins.staging.url}</url>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-releases</id>
<name>gCube Releases</name>
<url>${repository.releases.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-externals</id>
<name>gCube Externals</name>
<url>${repository.externals.readonly}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
@ -819,18 +623,15 @@
<profile>
<id>jenkins-staging-official</id>
<activation>
<jdk>[9,17)</jdk>
<jdk>[1.8,9)</jdk>
<property>
<name>jenkins-staging</name>
<value>true</value>
</property>
</activation>
<properties>
<java_version>1.8</java_version>
<maven.compiler.source>${java_version}</maven.compiler.source>
<maven.compiler.target>${java_version}</maven.compiler.target>
<repository>${repository.jenkins.staging.url}</repository>
</properties>
<properties>
<repository>${repository.jenkins.staging.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
@ -844,6 +645,17 @@
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-staging</id>
<name>gCube Staging</name>
<url>${repository.staging.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-releases</id>
<name>gCube Releases</name>
@ -867,6 +679,7 @@
</releases>
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
@ -882,7 +695,7 @@
<profile>
<id>jenkins-staging-experimental</id>
<activation>
<jdk>[17,)</jdk>
<jdk>[9,)</jdk>
<property>
<name>jenkins-staging</name>
<value>true</value>
@ -892,14 +705,14 @@
<java_version>1.8</java_version>
<maven.compiler.source>${java_version}</maven.compiler.source>
<maven.compiler.target>${java_version}</maven.compiler.target>
<repository>${repository.jenkins.staging.next.url}</repository>
<repository>${repository.jenkins.staging.java11.url}</repository>
</properties>
<!-- Repositories for dependency resolution -->
<repositories>
<repository>
<id>gcube-staging-all</id>
<name>gCube Staging All</name>
<url>${repository.staging.all.url}</url>
<id>gcube-staging-jenkins</id>
<name>gCube Jenkins Staging</name>
<url>${repository.jenkins.staging.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
@ -907,11 +720,32 @@
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-releases-all</id>
<id>gcube-staging-jenkins-java11</id>
<name>gCube Jenkins Staging Java11</name>
<url>${repository.jenkins.staging.java11.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-staging</id>
<name>gCube Staging</name>
<url>${repository.staging.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>gcube-releases</id>
<name>gCube Releases</name>
<url>${repository.releases.all.url}</url>
<url>${repository.releases.url}</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
@ -932,14 +766,14 @@
</repository>
</repositories>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
<id>gcube-staging-jenkins-next</id>
<name>gCube Jenkins Staging Next</name>
<url>${repository.jenkins.staging.next.url}</url>
</repository>
</distributionManagement>
<!-- Repositories for deployments -->
<distributionManagement>
<repository>
<id>gcube-staging-jenkins-java11</id>
<name>gCube Staging</name>
<url>${repository.jenkins.staging.java11.url}</url>
</repository>
</distributionManagement>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
@ -990,17 +824,6 @@
<doUpdate>false</doUpdate>
</configuration>
</execution>
<execution>
<id>build.date</id>
<phase>initialize</phase>
<goals>
<goal>create-timestamp</goal>
</goals>
<configuration>
<timestampFormat>yyyy-MM-dd</timestampFormat>
<timestampPropertyName>build.date</timestampPropertyName>
</configuration>
</execution>
</executions>
</plugin>
@ -1294,7 +1117,6 @@
<configuration>
<target>${maven.compiler.target}</target>
<source>${maven.compiler.source}</source>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
</plugin>
</plugins>
@ -1489,12 +1311,13 @@
<goal>jar</goal>
</goals>
<configuration>
<source>${java_version}</source>
<additionalparam>${javadoc.opts}</additionalparam>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
@ -1520,16 +1343,8 @@
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>3.0.13</version>
<!--version>3.0.0-beta-3</version-->
<type>pom</type>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
@ -1543,9 +1358,9 @@
<plugin.jar.version>3.1.2</plugin.jar.version>
<plugin.war.version>3.3.1</plugin.war.version>
<plugin.assembly.version>2.6</plugin.assembly.version>
<plugin.compiler.version>3.10.1</plugin.compiler.version>
<plugin.compiler.version>3.8.1</plugin.compiler.version>
<plugin.source.version>2.1.2</plugin.source.version>
<plugin.javadoc.version>3.6.3</plugin.javadoc.version>
<plugin.javadoc.version>2.8</plugin.javadoc.version>
<plugin.resources.version>3.1.0</plugin.resources.version>
<!-- default value for the distro directory -->
@ -1557,34 +1372,22 @@
<java.expected.vm>.*OpenJDK.*</java.expected.vm>
<maven.compiler.source>${java_version}</maven.compiler.source>
<maven.compiler.target>${java_version}</maven.compiler.target>
<!--maven.local.classpath>/opt/gcube/local-classpath</maven.local.classpath-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.version>3.3.9</maven.version>
<repository.snapshots.url>https://nexus.d4science.org/nexus/content/repositories/gcube-snapshots
</repository.snapshots.url>
<repository.releases.gcore.url>https://nexus.d4science.org/nexus/content/repositories/gcube-releases-gcore
</repository.releases.gcore.url>
<repository.releases.url>https://nexus.d4science.org/nexus/content/repositories/gcube-releases
</repository.releases.url>
<repository.releases.next.url>https://nexus.d4science.org/nexus/content/repositories/gcube-releases-next
</repository.releases.next.url>
<repository.releases.all.url>https://nexus.d4science.org/nexus/content/groups/gcube-releases-all
</repository.releases.all.url>
<repository.jenkins.staging.gcore.url>
https://nexus.d4science.org/nexus/content/repositories/gcube-staging-gcore
</repository.jenkins.staging.gcore.url>
<repository.jenkins.staging.java7.url>
https://nexus.d4science.org/nexus/content/repositories/gcube-staging-java7
</repository.jenkins.staging.java7.url>
<repository.jenkins.staging.url>
https://nexus.d4science.org/nexus/content/repositories/gcube-staging-jenkins
</repository.jenkins.staging.url>
<repository.jenkins.staging.next.url>
https://nexus.d4science.org/nexus/content/repositories/gcube-staging-jenkins-next
</repository.jenkins.staging.next.url>
<repository.staging.all.url>https://nexus.d4science.org/nexus/content/groups/gcube-staging-all
</repository.staging.all.url>
<repository.jenkins.staging.java11.url>
https://nexus.d4science.org/nexus/content/repositories/gcube-staging-jenkins-java11
</repository.jenkins.staging.java11.url>
<repository.staging.url>https://nexus.d4science.org/nexus/content/repositories/gcube-staging/
</repository.staging.url>
<repository.externals.readonly>
https://nexus.d4science.org/nexus/content/repositories/gcube-externals
</repository.externals.readonly>