mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-08-30 17:19:58 +08:00
ade8579369
Maven dependencyManagement does not flow across the iot-dc3 root reactor into dc3-common because dc3-common inherits from the externally published dc3-parent. As a result, dc3-common-test could not resolve JUnit 5 / Testcontainers / Instancio dependencies and dc3-e2e could not resolve dc3-common-test itself. Mirror the relevant slice of test-toolchain version management into dc3-common/pom.xml (junit-bom + testcontainers-bom imports plus pinned versions for AssertJ, Awaitility, Instancio, REST-assured and WireMock) and add the missing dc3-common-test version entry to the iot-dc3 root dependencyManagement so the e2e module can import it. Verified locally with mvn -B clean compile -pl dc3-common/dc3-common-test -am, which now resolves all 9 source files and produces dc3-common-test-2026.5.5.jar.
500 lines
20 KiB
XML
500 lines
20 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
~ Copyright 2016-present the IoT DC3 original author or authors.
|
|
~
|
|
~ This program is free software: you can redistribute it and/or modify
|
|
~ it under the terms of the GNU Affero General Public License as
|
|
~ published by the Free Software Foundation, either version 3 of the
|
|
~ License, or (at your option) any later version.
|
|
~
|
|
~ This program is distributed in the hope that it will be useful,
|
|
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
~ GNU Affero General Public License for more details.
|
|
~
|
|
~ You should have received a copy of the GNU Affero General Public License
|
|
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
-->
|
|
<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>io.github.pnoker</groupId>
|
|
<artifactId>dc3-parent</artifactId>
|
|
<version>2026.5.5</version>
|
|
</parent>
|
|
|
|
<name>${project.artifactId}</name>
|
|
<artifactId>iot-dc3</artifactId>
|
|
<packaging>pom</packaging>
|
|
|
|
<inceptionYear>2016</inceptionYear>
|
|
<url>https://github.com/pnoker/iot-dc3</url>
|
|
<description>
|
|
IoT DC3 is a fully open-source distributed Internet of Things (IoT) platform built on Spring Cloud.
|
|
It accelerates IoT project development and simplifies IoT device management, providing comprehensive solutions
|
|
for building robust IoT systems.
|
|
It is AI-ready, enabling seamless integration of AI capabilities for intelligent device connectivity,
|
|
automation, and data-driven operations.
|
|
All components and code are open-source, ensuring transparency, flexibility, and community-driven innovation.
|
|
</description>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>pnoker</id>
|
|
<name>pnoker</name>
|
|
<email>pnokers@icloud.com</email>
|
|
<roles>
|
|
<role>PMC</role>
|
|
</roles>
|
|
<organization>pnoker.github.io</organization>
|
|
<url>https://github.com/pnoker/iot-dc3</url>
|
|
</developer>
|
|
</developers>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>GNU Affero General Public License v3.0</name>
|
|
<url>https://www.gnu.org/licenses/agpl-3.0.txt</url>
|
|
<distribution>repo</distribution>
|
|
</license>
|
|
</licenses>
|
|
|
|
<scm>
|
|
<url>https://github.com/pnoker/iot-dc3</url>
|
|
<connection>scm:git:https://github.com/pnoker/iot-dc3.git</connection>
|
|
<developerConnection>scm:git:https://github.com/pnoker/iot-dc3.git</developerConnection>
|
|
</scm>
|
|
|
|
<properties>
|
|
<maven.deploy.skip>true</maven.deploy.skip>
|
|
|
|
<!-- DC3 Version -->
|
|
<dc3.version>2026.5.5</dc3.version>
|
|
|
|
<!-- Spring AI -->
|
|
<spring-ai.version>2.0.0-M5</spring-ai.version>
|
|
|
|
<!-- Test toolchain -->
|
|
<testcontainers.version>1.20.4</testcontainers.version>
|
|
<junit.bom.version>5.11.3</junit.bom.version>
|
|
<assertj.version>3.26.3</assertj.version>
|
|
<awaitility.version>4.2.2</awaitility.version>
|
|
<instancio.version>5.3.0</instancio.version>
|
|
<rest-assured.version>5.5.0</rest-assured.version>
|
|
<wiremock.version>3.10.0</wiremock.version>
|
|
<surefire.version>3.5.2</surefire.version>
|
|
<jacoco.version>0.8.12</jacoco.version>
|
|
|
|
<!-- Test execution toggles (consumed by surefire/failsafe) -->
|
|
<skip.unit.tests>false</skip.unit.tests>
|
|
<skip.integration.tests>false</skip.integration.tests>
|
|
</properties>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>spring-milestones</id>
|
|
<name>Spring Milestones</name>
|
|
<url>https://repo.spring.io/milestone</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<modules>
|
|
<module>dc3-api</module>
|
|
<module>dc3-common</module>
|
|
<module>dc3-center</module>
|
|
<module>dc3-driver</module>
|
|
<module>dc3-gateway</module>
|
|
<module>dc3-coverage</module>
|
|
<module>dc3-e2e</module>
|
|
</modules>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<!-- AI Related -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-bom</artifactId>
|
|
<version>${spring-ai.version}</version>
|
|
<type>pom</type>
|
|
<scope>import</scope>
|
|
</dependency>
|
|
|
|
<!-- Test BOMs -->
|
|
<dependency>
|
|
<groupId>org.junit</groupId>
|
|
<artifactId>junit-bom</artifactId>
|
|
<version>${junit.bom.version}</version>
|
|
<type>pom</type>
|
|
<scope>import</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>testcontainers-bom</artifactId>
|
|
<version>${testcontainers.version}</version>
|
|
<type>pom</type>
|
|
<scope>import</scope>
|
|
</dependency>
|
|
|
|
<!-- Test toolchain (versions kept here so child pom usages stay terse) -->
|
|
<dependency>
|
|
<groupId>org.assertj</groupId>
|
|
<artifactId>assertj-core</artifactId>
|
|
<version>${assertj.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.awaitility</groupId>
|
|
<artifactId>awaitility</artifactId>
|
|
<version>${awaitility.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.instancio</groupId>
|
|
<artifactId>instancio-junit</artifactId>
|
|
<version>${instancio.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.rest-assured</groupId>
|
|
<artifactId>rest-assured</artifactId>
|
|
<version>${rest-assured.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.wiremock</groupId>
|
|
<artifactId>wiremock-standalone</artifactId>
|
|
<version>${wiremock.version}</version>
|
|
</dependency>
|
|
|
|
<!-- DC3 API Related -->
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-api-auth</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-api-data</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-api-driver</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-api-manager</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
|
|
<!-- DC3 Common Related -->
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-agentic</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-api</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-auth</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-constant</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-dal</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-data</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-driver</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-exception</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-facade-api</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-facade-grpc</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-facade-local</artifactId>
|
|
<version>${dc3.version}</version>
|
|
<type>pom</type>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-facade-local-auth</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-facade-local-data</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-facade-local-manager</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-gateway</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-log</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-manager</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-model</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-mqtt</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-postgres</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-public</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-quartz</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-rabbitmq</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-repository</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-resource-registrar</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-test</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-thread</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-web</artifactId>
|
|
<version>${dc3.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<build>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>${surefire.version}</version>
|
|
<configuration>
|
|
<skip>${skip.unit.tests}</skip>
|
|
<argLine>@{argLine} -Xshare:off -Duser.language=en -Duser.country=US</argLine>
|
|
<includes>
|
|
<include>**/*Test.java</include>
|
|
<include>**/*Tests.java</include>
|
|
</includes>
|
|
<excludes>
|
|
<include>**/*IT.java</include>
|
|
<include>**/Abstract*.java</include>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
<version>${surefire.version}</version>
|
|
<configuration>
|
|
<skip>${skip.integration.tests}</skip>
|
|
<argLine>@{failsafe.argLine} -Xshare:off -Duser.language=en -Duser.country=US</argLine>
|
|
<includes>
|
|
<include>**/*IT.java</include>
|
|
</includes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>integration-tests</id>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>${jacoco.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>prepare-unit-agent</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
<configuration>
|
|
<propertyName>argLine</propertyName>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>prepare-integration-agent</id>
|
|
<goals>
|
|
<goal>prepare-agent-integration</goal>
|
|
</goals>
|
|
<configuration>
|
|
<propertyName>failsafe.argLine</propertyName>
|
|
<destFile>${project.build.directory}/jacoco-it.exec</destFile>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>report-unit</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>report-integration</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>report-integration</goal>
|
|
</goals>
|
|
<configuration>
|
|
<dataFile>${project.build.directory}/jacoco-it.exec</dataFile>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-jdk-version</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireJavaVersion>
|
|
<version>[21,)</version>
|
|
<message>
|
|
This project targets Java 21 bytecode (via --release 21).
|
|
JDK 21 or newer is required to build.
|
|
Current JDK: ${java.version}
|
|
</message>
|
|
</requireJavaVersion>
|
|
<requireMavenVersion>
|
|
<version>3.9.0</version>
|
|
</requireMavenVersion>
|
|
</rules>
|
|
<fail>true</fail>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>dev</id>
|
|
<properties>
|
|
<!-- You can configure environment variables commonly used in development -->
|
|
<NODE_ENV>dev</NODE_ENV>
|
|
</properties>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
</profile>
|
|
<profile>
|
|
<id>test</id>
|
|
<properties>
|
|
<NODE_ENV>test</NODE_ENV>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>pre</id>
|
|
<properties>
|
|
<NODE_ENV>pre</NODE_ENV>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>pro</id>
|
|
<properties>
|
|
<NODE_ENV>pro</NODE_ENV>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
|
|
</project>
|