+ <modules>
+ <!-- Shared Platform Modules -->
+ <module>base-core</module>
+ <module>base-auth</module>
+ <module>base-calc</module>
+ <module>base-user</module>
+ <!-- Swim App Modules -->
+ <module>swim-domain</module>
+ <module>swim-pdf</module>
+ <module>swim-fit</module>
+ <module>swim-web</module>
+ </modules>
+
+ <properties>
+ <java.version>21</java.version>
+ <jjwt.version>0.12.5</jjwt.version>
+ <pdfbox.version>3.0.2</pdfbox.version>
+ <totp.version>1.7.1</totp.version>
+ <mapstruct.version>1.5.5.Final</mapstruct.version>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <!-- Shared Platform -->
+ <dependency>
+ <groupId>com.triathlon-coaching.product</groupId>
+ <artifactId>base-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.triathlon-coaching.product</groupId>
+ <artifactId>base-auth</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.triathlon-coaching.product</groupId>
+ <artifactId>base-calc</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.triathlon-coaching.product</groupId>
+ <artifactId>base-user</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Swim App -->
+ <dependency>
+ <groupId>com.triathlon-coaching.product</groupId>
+ <artifactId>swim-domain</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.triathlon-coaching.product</groupId>
+ <artifactId>swim-pdf</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.triathlon-coaching.product</groupId>
+ <artifactId>swim-fit</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- JWT -->
+ <dependency>
+ <groupId>io.jsonwebtoken</groupId>
+ <artifactId>jjwt-api</artifactId>
+ <version>${jjwt.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.jsonwebtoken</groupId>
+ <artifactId>jjwt-impl</artifactId>
+ <version>${jjwt.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.jsonwebtoken</groupId>
+ <artifactId>jjwt-jackson</artifactId>
+ <version>${jjwt.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <!-- PDF -->
+ <dependency>
+ <groupId>org.apache.pdfbox</groupId>
+ <artifactId>pdfbox</artifactId>
+ <version>${pdfbox.version}</version>
+ </dependency>
+ <!-- TOTP / 2FA -->
+ <dependency>
+ <groupId>dev.samstevens.totp</groupId>
+ <artifactId>totp-spring-boot-starter</artifactId>
+ <version>${totp.version}</version>
+ </dependency>
+ <!-- MapStruct -->
+ <dependency>
+ <groupId>org.mapstruct</groupId>
+ <artifactId>mapstruct</artifactId>
+ <version>${mapstruct.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <!-- Gemeinsame Abhängigkeiten für ALLE Module -->
+ <dependencies>
+ <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>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ </path>
+ <path>
+ <groupId>org.mapstruct</groupId>
+ <artifactId>mapstruct-processor</artifactId>
+ <version>${mapstruct.version}</version>
+ </path>
+ </annotationProcessorPaths>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>