Skip to content

Maven plug-in#25

Merged
tdegueul merged 30 commits intomainfrom
maven-plugin
Mar 8, 2026
Merged

Maven plug-in#25
tdegueul merged 30 commits intomainfrom
maven-plugin

Conversation

@tdegueul
Copy link
Contributor

@tdegueul tdegueul commented Mar 21, 2025

Brainstorming ideas for the future Maven plug-in, with a first rough draft implementation.

Features

  • Basic plug-in infrastructure
  • Hooks to the verify phase
  • Fail the build on either source or binary incompatibilities
  • Make the plug-in skippable
  • Check the current version against a published version retrieved from remote repositories:
  • Write reports/APIs to target/roseau or override through configuration
  • Accept Roseau .yaml files as configuration
  • Check the current version against a baseline JAR
  • Tests

Usage

Manual invocation:

$ mvn verify
$ mvn roseau:check

Basic pom.xml configuration. Here, attaching to the verify phase when building commons-cli:

<plugin>
	<groupId>io.github.alien-tools</groupId>
	<artifactId>roseau-maven-plugin</artifactId>
	<version>0.2.0-SNAPSHOT</version>
	<configuration>
		<oldVersion>
			<groupId>commons-cli</groupId>
			<artifactId>commons-cli</artifactId>
			<version>1.0</version>
		</oldVersion>
	</configuration>
	<executions>
		<execution>
			<phase>verify</phase>
			<goals>
				<goal>check</goal>
			</goals>
		</execution>
	</executions>
</plugin>

Implementation

We can assume that we have a JAR readily available that's just been built in the package phase. I don't see a reason to parse and analyze sources, so the implementation just uses the ASM extractor.

@tdegueul tdegueul added the enhancement New feature or request label Mar 21, 2025
@tdegueul tdegueul marked this pull request as draft March 21, 2025 17:41
@tdegueul tdegueul changed the title Maven plug-in brainstorming Maven plug-in Mar 8, 2026
@tdegueul tdegueul marked this pull request as ready for review March 8, 2026 17:51
@tdegueul tdegueul merged commit 996f697 into main Mar 8, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant