Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pom] Use plexus xml 3.0.0 or we lose maven 3 support #851

Merged
merged 1 commit into from
Mar 17, 2024

Conversation

hazendaz
Copy link
Member

Plexus utils 4.0.0 brings in maven 4 apis which should not be in the build. In many cases it breaks compatibility with maven 3 especially earlier versions indicated supported here. Maven created a non maven 4 copy of plexus-xml that should be defined for this specific purpose. We should however try to stop relying on plexus utils as its mostly deprecated.

@hazendaz hazendaz self-assigned this Mar 17, 2024
@hazendaz hazendaz merged commit facae51 into revelc:main Mar 17, 2024
3 checks passed
@hazendaz hazendaz added this to the 2.24.0 milestone Mar 17, 2024
@ctubbsii
Copy link
Member

plexus-utils doesn't actually come with plexus-xml anymore. It ships separately. We don't use it, so we don't need to specify any version for it. The version that comes transitively with plexus-resources, which we do use, is 3.0.0, which should work fine with Maven 3. We can just keep plexus-xml omitted from the POM entirely.

@hazendaz
Copy link
Member Author

Sure they just fixed that in 4.0.1 so it can now be removed as that was the only reason it was there (due to leaking maven 4).

ctubbsii added a commit to ctubbsii/formatter-maven-plugin that referenced this pull request Jul 17, 2024
* Update maven build to use revelc prefixed property name for formatting
  profiles in the parent POM
* Drop the sonatype deploy snapshot configuration (not needed and not
  safe to use personal individual credentials on a shared repository
  this way - personal secrets still need to be deleted from the GitHub
  repository); discussed on revelc#889
* Re-drop autogenerated CHANGELOG file and related README in favor of
  adding a link to the milestone or full changeset in the GitHub
  release notes; discussion on revelc#844
* Bump snapshot version to 2.25.0 and update the compatible Eclipse
  version in the site documentation
* Add missing scm section (revelc/revelc#12)
* Drop site-specific distributionManagement section and related
  scmpublish plugin settings (those can be run manually entirely from
  the command-line with command-line parameters, if needed, but it
  shouldn't be necessary if the GitHub plugin defined in the site-deploy
  phase of the site lifecyle is used, as defined in the parent POM);
  discussed on revelc#905
* Revert to using stable versions of maven site plugin and Fluido skin,
  defined in the parent POM, rather than override here (when these get
  stable releases, the parent POM can be updated, and then the site
  descriptor will need to be updated, but for now, these can use the
  latest stable versions)
* Add dependencyConvergence rule to the build, and exclude conflicting
  transitive dependencies, in order to affix them to specific versions
  (some of this might not be needed once some of the other plugins start
  doing dependency convergence also, like xml-formatter and jsdt-core)
* Make sure slf4j-api is marked as provided (address concerns from revelc#846)
  It would be easier if we could converge on what maven-core or
  maven-plugin-api uses, but those dependencies are opaque to us, so we
  just have to assume it's provided and compatible with what we're
  using; slf4j has a high degree of compatibility, though, so this
  shouldn't be much of a concern
* Drop plexus-xml dependency (we don't use it, and the one that comes
  with plexus-resources is fine with Maven 3); see comment on revelc#851
@ctubbsii ctubbsii mentioned this pull request Jul 17, 2024
ctubbsii added a commit that referenced this pull request Jul 26, 2024
* Update maven build to use revelc prefixed property name for formatting
  profiles in the parent POM
* Drop the sonatype deploy snapshot configuration (not needed and not
  safe to use personal individual credentials on a shared repository
  this way - personal secrets still need to be deleted from the GitHub
  repository); discussed on #889
* Re-drop autogenerated CHANGELOG file and related README in favor of
  adding a link to the milestone or full changeset in the GitHub
  release notes; discussion on #844
* Bump snapshot version to 2.25.0 and update the compatible Eclipse
  version in the site documentation
* Add missing scm section (revelc/revelc#12)
* Drop site-specific distributionManagement section and related
  scmpublish plugin settings (those can be run manually entirely from
  the command-line with command-line parameters, if needed, but it
  shouldn't be necessary if the GitHub plugin defined in the site-deploy
  phase of the site lifecyle is used, as defined in the parent POM);
  discussed on #905
* Revert to using stable versions of maven site plugin and Fluido skin,
  defined in the parent POM, rather than override here (when these get
  stable releases, the parent POM can be updated, and then the site
  descriptor will need to be updated, but for now, these can use the
  latest stable versions)
* Add dependencyConvergence rule to the build, and exclude conflicting
  transitive dependencies, in order to affix them to specific versions
  (some of this might not be needed once some of the other plugins start
  doing dependency convergence also, like xml-formatter and jsdt-core)
* Make sure slf4j-api is marked as provided (address concerns from #846)
  It would be easier if we could converge on what maven-core or
  maven-plugin-api uses, but those dependencies are opaque to us, so we
  just have to assume it's provided and compatible with what we're
  using; slf4j has a high degree of compatibility, though, so this
  shouldn't be much of a concern
* Drop plexus-xml dependency (we don't use it, and the one that comes
  with plexus-resources is fine with Maven 3); see comment on #851
* Upload build logs on GitHub Actions failure

Try to make the build windows-friendly

* Treat test files as binaries, so git won't mangle the line endings
* Make sortpom-maven-plugin ignore line endings when verifying
* Commit correct CRLF line endings for AnyClassCRLF.java and someFile.xml
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