Skip to content

Conversation

@gselzer
Copy link
Member

@gselzer gselzer commented Jan 7, 2026

This PR adds a new custom enforcer rule that asserts that either:

  1. No main-class property exists (this would actually show up as a key with a blank value)
  2. The main-class property refers to an existing class file.

The intent behind this rule is to catch the situations where a POM is copied and the developer who doesn't know any better (historically me) just changes the package structure of this property without actually making the class. It's been tested on the scijava/scijava repository, and seems to be working.

Note that this rule differs from the existing rules in that it does not use the deprecated org.apache.maven.enforcer.rule.api.EnforcerRule. Let me know if that's an issue! We could always refactor the other rules into the new classes in another PR (there seems to be no issue with using both old and new patterns simultaneously)

This is actually what happens when the pom doesn't have this property
@gselzer gselzer requested a review from ctrueden January 7, 2026 23:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants