Skip to content

Repository files navigation

Arciphant

Logo

Arciphant is a Gradle settings plugin for projects built from many modules that share the same technical structure: moduliths, Clean Architecture, Hexagonal Architecture and friends. Instead of maintaining dozens of include(...) statements and near-identical build.gradle.kts files, you describe that structure once, as a template, directly in settings.gradle.kts:

arciphant {
    val moduleTemplate = template()
        .createComponent(name = "domain")
        .createComponent(name = "application", apiDependencies = setOf("domain"))
        .createComponent(name = "web", dependencies = setOf("application"))

    module(name = "orders", template = moduleTemplate)
    module(name = "customers", template = moduleTemplate)

    bundle(name = "my-app")
}

From this single declaration Arciphant generates the whole multi-project build: the projects, their folders on disk and every dependency between the components. No build.gradle.kts per component, no duplicated build logic.

Why Arciphant

  • Templates instead of boilerplate. Define your architecture style once; every module gets the same shape. Adding a module is a one-liner.
  • Dependencies wired automatically. Component dependencies become implementation and api dependencies, shared libraries are exposed to every module, and test fixtures work out of the box.
  • The compiler enforces the architecture. Components are separate build units, so code that violates the declared dependencies does not even compile. Framework code stays on the classpath of the components that declare it.
  • Clean package structure. The validatePackageStructure task checks that code lives where your module structure prescribes. No ArchUnit needed for the basics.

Documentation

See the Arciphant documentation for setup, a quickstart, the concepts and the DSL reference.

Repository layout

  • arciphant-gradle-plugin/ – the plugin
  • arciphant-project-demo/, arciphant-source-set-demo/ – a demo application, once per component layout
  • examples/ – small, feature-focused example builds
  • docs/ – user documentation

About the project

Arciphant is written in Kotlin, developed by Ergon Informatik AG and released under the MIT License. The publisher does not guarantee active maintenance and further development; we work on the plugin to the extent that we need for our own projects.

The name combines architecture and elephant, the elephant being both a metaphor for a large project and a nod to the Gradle logo.

Gradle Kotlin MIT License

About

Arciphant

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages