Write Apache Maven POM files in Ruby, Groovy, Scala, YAML, Kotlin, Clojure, Java, or Atom instead of XML.
Polyglot for Maven is a set of extensions that allows Apache Maven POM files to be written in languages other than XML, such as Ruby, Groovy, Scala, YAML, Kotlin, Clojure, Java, or Atom. It solves the problem of XML's verbosity and rigidity by letting teams use more concise, readable, or familiar syntax for their build configuration while remaining fully compatible with Maven.
Java and JVM ecosystem developers who use Maven and want more expressive, maintainable project configuration files, especially teams working with polyglot codebases or preferring DSLs over XML.
Developers choose Polyglot Maven to reduce XML boilerplate, improve POM readability, and leverage language-specific features like inline plugin definitions, all without sacrificing Maven's core functionality or ecosystem compatibility.
Support alternative markup for Apache Maven POM files
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports writing POMs in nine languages including Ruby, YAML, and Kotlin, allowing teams to use familiar syntax for build configuration. The README lists all available dialects with artifact IDs.
Ruby, Groovy, and Scala dialects enable embedding plugin configurations directly in the POM using language-specific syntax, reducing XML boilerplate. The Ruby example in the README shows this in action.
Includes a translate plugin to convert existing XML POMs to any supported format and back, facilitating migration. The README provides a command-line example for cross-format conversion.
Compatible with Maven's multi-module projects, enabling polyglot configurations across modules, though mixing dialects isn't allowed. Mentioned in the key features and limitations sections.
Key Maven plugins like the Release and Versions plugins fail because they parse XML directly, requiring workarounds. The README explicitly lists these as unsupported with examples.
IDE support is basic with only syntax highlighting, lacking advanced Maven features like code completion or validation. The README acknowledges that full integration is not available in IntelliJ or Eclipse.
Requires manual editing of extensions.xml and managing additional dependencies, adding overhead compared to standard Maven setups. The usage section details this extra configuration step.