Guide d'installation
Ce guide vous aidera à ajouter Structus à votre projet Kotlin.
Prérequis
- JDK 11 ou supérieur
- Kotlin 1.6.0 ou supérieur
- Gradle ou Maven
Installation via Gradle
Ajouter la dépendance au fichier build.gradle ou build.gradle.kts:
// build.gradle.kts (Kotlin DSL)
repositories {
mavenCentral()
maven {
url = uri("https://jitpack.io")
}
}
dependencies {
implementation("com.github.melsardes:structus-kotlin:0.1.0")
}
// build.gradle (Groovy DSL)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.melsardes:structus-kotlin:0.1.0'
}
Installation via Maven
<!-- pom.xml -->
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.melsardes</groupId>
<artifactId>structus-kotlin</artifactId>
<version>0.1.0</version>
</dependency>
</dependencies>
Construire depuis la source
Si vous préférez construire la bibliothèque depuis la source:
# Cloner le dépôt
git clone https://github.com/structus-io/structus-kotlin.git
# Naviguer vers le répertoire
cd structus-kotlin
# Construire le projet
./gradlew build
# Installer dans votre dépôt local Maven
./gradlew publishToMavenLocal
Vérification de l'installation
Créez un simple fichier Kotlin pour vérifier que Structus est correctement installé:
import com.melsardes.libraries.structuskotlin.domain.Entity
import com.melsardes.libraries.structuskotlin.domain.ValueObject
fun main() {
// Créer une classe de test pour s'assurer que les imports fonctionnent
data class TestId(val value: String) : ValueObject
class TestEntity(override val id: TestId) : Entity<TestId>()
val entity = TestEntity(TestId("test-id"))
println("Entité créée avec l'id: ${entity.id.value}")
}
Si le code compile et s'exécute sans erreur, vous avez correctement installé Structus!
Modules inclus
La bibliothèque comprend les modules suivants:
- Domain - Blocs fondamentaux pour le DDD (entités, objets-valeurs, événements)
- Application - Modèles CQRS et gestionnaires pour les commandes et requêtes
- Infrastructure - Implémentations optionnelles pour diverses technologies
Configuration avec les frameworks
Spring Boot
import com.melsardes.libraries.structuskotlin.application.commands.CommandHandler
import org.springframework.stereotype.Service
@Service
class MyCommandHandler(
private val repository: MyRepository
) : CommandHandler<MyCommand, Result<MyEntity>> {
// ...
}
Ktor
import com.melsardes.libraries.structuskotlin.application.commands.CommandHandler
import io.ktor.server.application.*
// Dans votre module Ktor
fun Application.configureHandlers() {
val handler = MyCommandHandler(repository)
// ...
}
Kotlin pur
import com.melsardes.libraries.structuskotlin.application.commands.CommandHandler
// Créer des instances manuellement
val repository = MyRepositoryImpl()
val handler = MyCommandHandler(repository)
Dépendances optionnelles
Selon votre cas d'utilisation, vous pourriez avoir besoin d'ajouter ces dépendances supplémentaires:
- kotlinx-coroutines-core - Pour la programmation asynchrone
- kotlinx-serialization - Pour la sérialisation/désérialisation d'objets
- slf4j-api - Pour la journalisation (logging)
Résolution des problèmes
Conflits de version
Si vous rencontrez des conflits de version avec Kotlin ou les coroutines, forcez une version spécifique:
// build.gradle.kts
configurations.all {
resolutionStrategy.force("org.jetbrains.kotlin:kotlin-stdlib:1.8.0")
resolutionStrategy.force("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
}
JDK incompatible
Structus nécessite Java 11 ou supérieur. Vérifiez votre version JDK:
java -version
Ressources supplémentaires
Prochaines étapes
Une fois Structus installé, passez au Tutoriel de démarrage rapide pour construire votre première application.