Update on Maven declarative builds:

A new, hopefully readable syntax has been implemented.
I think I addressed most of the issues identified by early adopters.
Thanks again for providing valuable feedback!

You can the new syntax it in action at the plexus-cipher spec file at
https://src.fedoraproject.org/rpms/plexus-cipher/blob/rawhide/f/plexus-cipher.spec
Upstream documentation for the syntax is available at
https://github.com/mizdebsk/dola/blob/master/MANUAL.md

--
Mikolaj Izdebski

On Fri, Jun 13, 2025 at 6:21 PM Mikolaj Izdebski <mizde...@redhat.com> wrote:
>
> Hi all,
>
> I'm excited to announce the preview availability of declarative Maven
> RPM builds in Fedora 43 -- a new approach to RPM packaging for
> Maven-based Java projects that focuses on simplicity, consistency, and
> future automation. This functionality is already usable today, though
> it is still under active development and not yet feature-complete.
> The preview is intended to gather early feedback and prepare for
> broader adoption.
>
> Declarative Maven builds let you define packaging logic entirely as
> structured data using BuildOption tags (available in RPM 4.20 and
> later). This eliminates the need for %prep, %build, and %install
> scriptlets. The build process still uses XMvn internally, but the
> declarative layer eliminates the need for RPM macros or shell
> scripting.
>
> Key features:
>
> - Declarative configuration: Build logic is expressed through
> structured tags, not executable code.
>
> - Cleaner spec files: Less boilerplate, easier to read and maintain.
>
> - Tooling-friendly: Pure data is easier to parse, validate, and
> transform, enabling better automation down the line.
>
> - Dynamic BuildRequires: Build dependencies are inferred automatically
> based on the project’s POM metadata, reducing manual maintenance and
> errors.
>
> - Interoperability: Packages built with declarative Maven builds
> remain fully compatible with traditional Java packages that use
> javapackages-tools. They can coexist and interoperate in the same
> dependency graph.
>
> This feature is currently in preview. So far, a single package
> "plexus-cipher" has been converted to use declarative Maven builds. It
> serves as a working example and proof of concept. The spec file of
> plexus-cipher can be seen at
> https://src.fedoraproject.org/rpms/plexus-cipher/blob/rawhide/f/plexus-cipher.spec
>
> More information can be found at upstream project at
> https://github.com/mizdebsk/dola
> Currently supported syntax for BuildOptions (subject to change) is
> documented at https://github.com/mizdebsk/dola/blob/master/SYNTAX.md
> More info about declarative RPM builds in general can be found at
> https://rpm-software-management.github.io/rpm/manual/buildsystem.html
>
> --
> Mikolaj Izdebski

-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to