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