hawkbit-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.eclipse.hawkbit</groupId>
<artifactId>hawkbit-parent</artifactId>
<version>0.9.0</version>
</dependency><!--
Copyright (c) 2015 Bosch Software Innovations GmbH and others
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
-->
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.3</version>
</parent>
<groupId>org.eclipse.hawkbit</groupId>
<artifactId>hawkbit-parent</artifactId>
<version>0.9.0</version>
<packaging>pom</packaging>
<name>hawkBit :: Parent</name>
<licenses>
<license>
<name>EPL-2.0</name>
<url>https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt</url>
<comments>Eclipse Public License - Version 2.0</comments>
</license>
</licenses>
<scm>
<connection>scm:git:git@github.com:eclipse-hawkbit/hawkbit.git</connection>
<developerConnection>scm:git:https://github.com/eclipse-hawkbit/hawkbit.git</developerConnection>
<url>https://github.com/eclipse-hawkbit/hawkbit.git</url>
</scm>
<properties>
<revision>0-SNAPSHOT</revision>
<java.version>17</java.version>
<!-- java.version is used to build the hawkbit in general, however, some artifacts which could be used
as libraries in other projects might be compiled with a different, lower, java version. -->
<java.client.version>17</java.client.version>
<!-- must be the same as the parent version -->
<spring.boot.version>3.5.3</spring.boot.version>
<spring.cloud.version>2025.0.0</spring.cloud.version>
<springdoc-openapi.version>2.8.9</springdoc-openapi.version>
<spring.plugin.core.version>3.0.0</spring.plugin.core.version>
<!-- Spring boot version overrides (should be reviewed with every Spring boot upgrade) - START -->
<!-- Newer versions needed than defined in the Spring boot -->
<!-- Spring boot version overrides - END -->
<!-- Eclipselink - START -->
<eclipselink.version>4.0.7</eclipselink.version>
<eclipselink.maven.plugin.version>3.0.2</eclipselink.maven.plugin.version>
<!-- Eclipselink - END -->
<!-- Misc libraries versions - START -->
<cron-utils.version>9.2.1</cron-utils.version>
<jsoup.version>1.21.1</jsoup.version>
<javax.el-api.version>3.0.0</javax.el-api.version>
<rsql-parser.version>2.1.0</rsql-parser.version>
<commons-io.version>2.19.0</commons-io.version>
<commons-collections4.version>4.5.0</commons-collections4.version>
<commons-text.version>1.13.1</commons-text.version>
<io-protostuff.version>1.8.0</io-protostuff.version>
<!-- test -->
<rabbitmq.http-client.version>5.4.0</rabbitmq.http-client.version>
<classgraph.version>4.8.180</classgraph.version>
<awaitility.version>4.3.0</awaitility.version>
<!-- Misc libraries versions - END -->
<!-- Maven Plugin versions - START -->
<maven.enforcer.plugin.version>3.5.0</maven.enforcer.plugin.version>
<flatten.maven.plugin.version>1.7.1</flatten.maven.plugin.version>
<maven.site.plugin.version>3.21.0</maven.site.plugin.version>
<maven.surefire.plugin.version>3.5.3</maven.surefire.plugin.version>
<jacoco.maven.plugin.version>0.8.13</jacoco.maven.plugin.version>
<license.tool.plugin.version>1.1.0</license.tool.plugin.version>
<license.maven.plugin.version>5.0.0</license.maven.plugin.version>
<central.publishing.maven.plugin.version>0.8.0</central.publishing.maven.plugin.version>
<maven.gpg.plugin.version>3.2.7</maven.gpg.plugin.version>
<!-- Maven Plugin versions - END -->
<!-- Test - START -->
<surefire.forkcount>1</surefire.forkcount>
<surefire.jvm.args/>
<!-- Test - END -->
<!-- Sonar - START -->
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.branch.name>LOCAL_SCAN</sonar.branch.name>
<sonar.qualitygate.wait>true</sonar.qualitygate.wait>
<sonar.qualitygate.timeout>600</sonar.qualitygate.timeout>
<sonar.links.homepage>https://www.eclipse.org/hawkbit</sonar.links.homepage>
<sonar.links.ci>https://github.com/eclipse-hawkbit/hawkbit/actions</sonar.links.ci>
<sonar.coverage.exclusions>
**/*Configuration.java,
**/*Properties.java,
**/*Exception.java,
**/src/test/**,
**/src/main/java/org/eclipse/hawkbit/repository/test/**,
**/src/main/java/org/eclipse/hawkbit/rabbitmq/test/**,
**/src/main/java/org/eclipse/hawkbit/ui/**
</sonar.coverage.exclusions>
<sonar.coverage.jacoco.xmlReportPaths>
${project.basedir}/../target/jacoco-aggregate/jacoco.xml,
${project.basedir}/../../target/jacoco-aggregate/jacoco.xml
</sonar.coverage.jacoco.xmlReportPaths>
<!-- Sonar - END -->
<!-- Dash tool integration - START -->
<dash.skip>false</dash.skip>
<dash.fail>true</dash.fail>
<dash.projectId>iot.hawkbit</dash.projectId>
<dash.summary>.3rd-party/DEPENDENCIES</dash.summary>
<!-- To automatically create IP Team review requests for identified content call with -Ddash.iplab.token=<token> (do not share your access token) -->
<dash.review.summary>${project.build.directory}/.3rd-party/DEPENDENCIES_REVIEW</dash.review.summary>
<excludeGroupIds>org.eclipse,org.junit</excludeGroupIds>
<!-- Dash tool integration - END -->
</properties>
<developers>
<developer>
<id>kaizimmerm</id>
<email>kai.zimmermann@microsoft.com</email>
<organization>Microsoft</organization>
<organizationUrl>https://www.microsoft.com</organizationUrl>
<roles>
<role>Lead</role>
<role>Committer</role>
</roles>
</developer>
<developer>
<id>laverman</id>
<email>Jeroen.Laverman@bosch.io</email>
<organization>Bosch.IO GmbH</organization>
<organizationUrl>https://www.bosch.io</organizationUrl>
<roles>
<role>Lead</role>
<role>Committer</role>
</roles>
</developer>
<developer>
<id>michahirsch</id>
<roles>
<role>Committer</role>
</roles>
</developer>
<developer>
<id>schabdo</id>
<email>Dominic.Schabel@bosch.io</email>
<organization>Bosch.IO GmbH</organization>
<organizationUrl>https://www.bosch.io</organizationUrl>
<roles>
<role>Committer</role>
</roles>
</developer>
<developer>
<id>stefbehl</id>
<email>Stefan.Behl@bosch.io</email>
<organization>Bosch.IO GmbH</organization>
<organizationUrl>https://www.bosch.io</organizationUrl>
<roles>
<role>Committer</role>
</roles>
</developer>
<developer>
<id>avgustinmm</id>
<email>Avgustin.Marinov@bosch.com</email>
<organization>Bosch Digital</organization>
<organizationUrl>https://www.bosch-digital.com/</organizationUrl>
<roles>
<role>Committer</role>
</roles>
</developer>
</developers>
<pluginRepositories>
<pluginRepository>
<id>dash-licenses</id>
<url>https://repo.eclipse.org/content/repositories/dash-licenses</url>
</pluginRepository>
</pluginRepositories>
<!-- Dependencies for all hawkBit modules -->
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- Misc -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>http-client</artifactId>
<version>${rabbitmq.http-client.version}</version>
</dependency>
<dependency>
<groupId>com.cronutils</groupId>
<artifactId>cron-utils</artifactId>
<version>${cron-utils.version}</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>${jsoup.version}</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>${javax.el-api.version}</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring.boot.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>${spring.plugin.core.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc-openapi.version}</version>
</dependency>
<!-- Protostuff Io -->
<dependency>
<groupId>io.protostuff</groupId>
<artifactId>protostuff-core</artifactId>
<version>${io-protostuff.version}</version>
</dependency>
<dependency>
<groupId>io.protostuff</groupId>
<artifactId>protostuff-runtime</artifactId>
<version>${io-protostuff.version}</version>
</dependency>
<!-- RSQL / FIQL parser -->
<dependency>
<groupId>cz.jirutka.rsql</groupId>
<artifactId>rsql-parser</artifactId>
<version>${rsql-parser.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>${commons-collections4.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>${commons-text.version}</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
<version>${classgraph.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit-junit</artifactId>
<version>${spring-amqp.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit-test</artifactId>
<version>${spring-amqp.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven.enforcer.plugin.version}</version>
<executions>
<execution>
<id>enforce-maven-and-java</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.8.6</version>
</requireMavenVersion>
<requireJavaVersion>
<version>17</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-no-snapshots-deps</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
<onlyWhenRelease>true</onlyWhenRelease>
</requireReleaseDeps>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
<onlyWhenRelease>false</onlyWhenRelease>
<excludes>
<exclude>org.eclipse.hawkbit:*</exclude>
<!-- if used in child poms with different groupId -->
<exclude>${project.groupId}:*</exclude>
</excludes>
</requireReleaseDeps>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${flatten.maven.plugin.version}</version>
<configuration>
<flattenMode>resolveCiFriendliesOnly</flattenMode>
<updatePomFile>true</updatePomFile>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<doclint>syntax</doclint>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven.site.plugin.version}</version>
<configuration>
<skip>true</skip>
<skipDeploy>true</skipDeploy>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.maven.plugin.version}</version>
<executions>
<execution>
<id>prepare-ut-agent</id>
<phase>process-test-classes</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<propertyName>jacoco.agent.args</propertyName>
</configuration>
</execution>
<execution>
<id>prepare-it-agent</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>jacoco.agent.integration.args</propertyName>
</configuration>
</execution>
<execution>
<id>report-ut</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>report-it</id>
<phase>post-integration-test</phase>
<goals>
<goal>report-integration</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration>
<reuseForks>true</reuseForks>
<forkCount>${surefire.forkcount}</forkCount>
<argLine>${jacoco.agent.args} ${surefire.jvm.args}</argLine>
<excludes>
<exclude>**/Abstract*.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>checkLicense</id>
<build>
<plugins>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${license.maven.plugin.version}</version>
<configuration>
<licenseSets>
<licenseSet>
<header>licenses/LICENSE_HEADER_TEMPLATE.txt</header>
<validHeaders>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_CONTRIBUTORS_23.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_CONTRIBUTORS_24.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_15.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_18.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_19.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_20.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_21.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_22.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_23.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_MICROSOFT_18.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_MICROSOFT_20.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_SIEMENS.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_SIEMENS_18.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_DEVOLO_19.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_DEVOLO_20.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_KIWIGRID_19.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_ENAPTER.txt</validHeader>
<validHeader>licenses/LICENSE_HEADER_TEMPLATE_BLUEZONE_25.txt</validHeader>
</validHeaders>
<excludes>
<exclude>.3rd-party/**</exclude>
<exclude>.git*</exclude>
<exclude>.github/**</exclude>
<exclude>licenses/LICENSE*</exclude>
<exclude>eclipse_codeformatter.xml</exclude>
<exclude>intellij_codeformatter.xml</exclude>
<exclude>**/banner.txt</exclude>
<exclude>**/helm/**</exclude>
<exclude>**/README</exclude>
<exclude>**/.git*</exclude>
<exclude>**/robots.txt</exclude>
<exclude>**/*.sql</exclude>
<exclude>**/docker/**</exclude>
<exclude>**/frontend/**</exclude>
<exclude>site/content/**</exclude>
<exclude>site/layouts/**</exclude>
<exclude>site/static/**</exclude>
<exclude>site/*.toml</exclude>
<exclude>**/spring.factories</exclude>
</excludes>
</licenseSet>
</licenseSets>
<mapping>
<java>JAVADOC_STYLE</java>
<scss>JAVADOC_STYLE</scss>
</mapping>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.dash</groupId>
<artifactId>license-tool-plugin</artifactId>
<version>${license.tool.plugin.version}</version>
<executions>
<execution>
<id>license-check</id>
<goals>
<goal>license-check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- follows https://eclipse-cbi.github.io/cbi-website/best-practices/github-actions/central-portal/index.html#prerequisites -->
<id>publish</id>
<activation>
<property>
<name>publish</name>
</property>
</activation>
<build>
<plugins>
<!-- This enables javadoc packaging for sonatype central publishing - javadoc is required for releases with hard versions-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>javadoc-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven.gpg.plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central.publishing.maven.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>hawkbit-test-report</module>
</modules>
</profile>
<profile>
<id>generateTestReport</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<executions>
<execution>
<id>generate-surefire-report</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
<inherited>false</inherited>
<configuration>
<outputDirectory>${project.build.directory}/surefire-reports</outputDirectory>
<aggregate>true</aggregate>
<linkXRef>true</linkXRef>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<modules>
<module>hawkbit-test-report</module>
</modules>
</profile>
</profiles>
<modules>
<module>hawkbit-core</module>
<module>hawkbit-security-core</module>
<module>hawkbit-artifact</module>
<module>hawkbit-repository</module>
<module>hawkbit-rest-core</module>
<module>hawkbit-autoconfigure</module>
<module>hawkbit-mgmt</module>
<module>hawkbit-ddi</module>
<module>hawkbit-dmf</module>
<module>hawkbit-monolith</module>
<module>hawkbit-simple-ui</module>
<module>hawkbit-sdk</module>
</modules>
</project>