Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[back compat] Add previous compile dependencies that are now missing #11299

@laeubi

Description

@laeubi

New feature, improvement proposal

Previously maven-core has contained some dependencies in compile scope for example guice and javax.inject.

<dependency>
	<groupId>org.apache.maven</groupId>
	<artifactId>maven-core</artifactId>
	<version>3.9.11</version>
</dependency>

results in the following list when used as a dependency:

The following files have been resolved:
   org.apache.maven:maven-core:jar:3.9.11:compile -- module maven.core (auto)
   org.apache.maven:maven-model:jar:3.9.11:compile -- module maven.model (auto)
   org.apache.maven:maven-settings:jar:3.9.11:compile -- module maven.settings (auto)
   org.apache.maven:maven-settings-builder:jar:3.9.11:compile -- module maven.settings.builder (auto)
   org.codehaus.plexus:plexus-sec-dispatcher:jar:2.0:compile -- module plexus.sec.dispatcher (auto)
   org.codehaus.plexus:plexus-cipher:jar:2.0:compile -- module plexus.cipher (auto)
   org.apache.maven:maven-builder-support:jar:3.9.11:compile -- module maven.builder.support (auto)
   org.apache.maven:maven-repository-metadata:jar:3.9.11:compile -- module maven.repository.metadata (auto)
   org.apache.maven:maven-artifact:jar:3.9.11:compile -- module maven.artifact (auto)
   org.apache.maven:maven-plugin-api:jar:3.9.11:compile -- module maven.plugin.api (auto)
   org.apache.maven:maven-model-builder:jar:3.9.11:compile -- module maven.model.builder (auto)
   org.apache.maven:maven-resolver-provider:jar:3.9.11:compile -- module maven.resolver.provider (auto)
   org.apache.maven.resolver:maven-resolver-impl:jar:1.9.24:compile -- module org.apache.maven.resolver.impl [auto]
   org.apache.maven.resolver:maven-resolver-named-locks:jar:1.9.24:compile -- module org.apache.maven.resolver.named.locks [auto]
   org.apache.maven.resolver:maven-resolver-api:jar:1.9.24:compile -- module org.apache.maven.resolver [auto]
   org.apache.maven.resolver:maven-resolver-spi:jar:1.9.24:compile -- module org.apache.maven.resolver.spi [auto]
   org.apache.maven.resolver:maven-resolver-util:jar:1.9.24:compile -- module org.apache.maven.resolver.util [auto]
   org.apache.maven.shared:maven-shared-utils:jar:3.4.2:compile -- module maven.shared.utils (auto)
   org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.9.0.M4:compile -- module org.eclipse.sisu.plexus (auto)
   org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.9.0.M4:compile -- module org.eclipse.sisu.inject (auto)
   org.ow2.asm:asm:jar:9.8:compile -- module org.objectweb.asm
   com.google.inject:guice:jar:classes:5.1.0:compile -- module com.google.guice [auto]
   aopalliance:aopalliance:jar:1.0:compile -- module aopalliance (auto)
   com.google.guava:guava:jar:33.4.8-jre:compile -- module com.google.common
   org.jspecify:jspecify:jar:1.0.0:compile -- module org.jspecify
   com.google.guava:failureaccess:jar:1.0.3:compile -- module com.google.common.util.concurrent.internal
   javax.inject:javax.inject:jar:1:compile -- module javax.inject (auto)
   org.codehaus.plexus:plexus-utils:jar:3.6.0:compile -- module plexus.utils (auto)
   org.codehaus.plexus:plexus-classworlds:jar:2.9.0:compile -- module plexus.classworlds (auto)
   org.codehaus.plexus:plexus-interpolation:jar:1.28:compile -- module plexus.interpolation (auto)
   org.codehaus.plexus:plexus-component-annotations:jar:2.2.0:compile -- module plexus.component.annotations (auto)
   org.slf4j:slf4j-api:jar:1.7.36:compile -- module org.slf4j [auto]

If I now upgrade and change the version to

<dependency>
	<groupId>org.apache.maven</groupId>
	<artifactId>maven-core</artifactId>
	<version>4.0.0-rc-4</version>
</dependency>
<dependency>
	<groupId>org.apache.maven</groupId>
	<artifactId>maven-compat</artifactId>
	<version>4.0.0-rc-4</version>
</dependency>

I would expect no compile / runtime problems but e.g. I get compile problems because javax.inject is missing and at least guice seems to be required for using maven-plugin-testing, there are might be even more.

As it is quite cumbersome to find out what might be missing, I would like to ask to add all dependencies that where previously provided as compile time as well in the maven-compat layer for maximum compatibility. These should then explicitly being marked with a comment <!-- only for backward compatibility --> to prevent them from being accidentally being removed and to make it easier for people to se what they might need during the migration.

For reference I made a dependency:list of the current state, slf4j-api:1.7.36 can be seen as already there as the 2.x variant is compile compatible, but the rest needs to be checked and possible added added:

The following files have been resolved:
   org.apache.maven:maven-core:jar:4.0.0-rc-4:compile -- module maven.core (auto)
   org.apache.maven:maven-api-annotations:jar:4.0.0-rc-4:compile -- module maven.api.annotations (auto)
   org.apache.maven:maven-api-core:jar:4.0.0-rc-4:compile -- module maven.api.core (auto)
   org.apache.maven:maven-api-di:jar:4.0.0-rc-4:compile -- module maven.api.di (auto)
   org.apache.maven:maven-api-metadata:jar:4.0.0-rc-4:compile -- module maven.api.metadata (auto)
   org.apache.maven:maven-api-model:jar:4.0.0-rc-4:compile -- module maven.api.model (auto)
   org.apache.maven:maven-api-plugin:jar:4.0.0-rc-4:compile -- module maven.api.plugin (auto)
   org.apache.maven:maven-api-settings:jar:4.0.0-rc-4:compile -- module maven.api.settings (auto)
   org.apache.maven:maven-api-spi:jar:4.0.0-rc-4:compile -- module maven.api.spi (auto)
   org.apache.maven:maven-api-toolchain:jar:4.0.0-rc-4:compile -- module maven.api.toolchain (auto)
   org.apache.maven:maven-api-xml:jar:4.0.0-rc-4:compile -- module maven.api.xml (auto)
   org.apache.maven:maven-di:jar:4.0.0-rc-4:compile -- module maven.di (auto)
   org.apache.maven:maven-impl:jar:4.0.0-rc-4:compile -- module maven.impl (auto)
   org.apache.maven:maven-support:jar:4.0.0-rc-4:compile -- module maven.support (auto)
   com.fasterxml.woodstox:woodstox-core:jar:7.1.1:compile -- module com.ctc.wstx
   org.codehaus.woodstox:stax2-api:jar:4.2.2:compile -- module org.codehaus.stax2
   org.apache.maven.resolver:maven-resolver-named-locks:jar:2.0.9:compile -- module org.apache.maven.resolver.named.locks [auto]
   org.apache.maven.resolver:maven-resolver-connector-basic:jar:2.0.9:compile -- module org.apache.maven.resolver.connector.basic [auto]
   org.codehaus.plexus:plexus-sec-dispatcher:jar:4.1.0:compile -- module plexus.sec.dispatcher (auto)
   org.apache.maven:maven-jline:jar:4.0.0-rc-4:compile -- module maven.jline (auto)
   org.jline:jline-reader:jar:3.30.4:compile -- module org.jline.reader [auto]
   org.jline:jline-style:jar:3.30.4:compile -- module org.jline.style [auto]
   org.jline:jline-builtins:jar:3.30.4:compile -- module org.jline.builtins [auto]
   org.jline:jline-console:jar:3.30.4:compile -- module org.jline.console [auto]
   org.jline:jline-console-ui:jar:3.30.4:compile -- module org.jline.consoleui [auto]
   org.jline:jline-terminal:jar:3.30.4:compile -- module org.jline.terminal [auto]
   org.jline:jline-native:jar:3.30.4:compile -- module org.jline.nativ [auto]
   org.jline:jline-terminal-jni:jar:3.30.4:compile -- module org.jline.terminal.jni [auto]
   org.jline:jansi-core:jar:3.30.4:compile -- module org.jansi.core [auto]
   org.apache.maven:maven-logging:jar:4.0.0-rc-4:compile -- module maven.logging (auto)
   org.apache.maven:maven-xml:jar:4.0.0-rc-4:compile -- module maven.xml (auto)
   org.apache.maven:maven-artifact:jar:4.0.0-rc-4:compile -- module maven.artifact (auto)
   org.apache.maven:maven-model:jar:4.0.0-rc-4:compile -- module maven.model (auto)
   org.apache.maven:maven-model-builder:jar:4.0.0-rc-4:compile -- module maven.model.builder (auto)
   org.apache.maven:maven-builder-support:jar:4.0.0-rc-4:compile -- module maven.builder.support (auto)
   org.apache.maven:maven-plugin-api:jar:4.0.0-rc-4:compile -- module maven.plugin.api (auto)
   org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.9.0.M4:compile -- module org.eclipse.sisu.plexus (auto)
   org.apache.maven:maven-repository-metadata:jar:4.0.0-rc-4:compile -- module maven.repository.metadata (auto)
   org.apache.maven:maven-settings:jar:4.0.0-rc-4:compile -- module maven.settings (auto)
   org.apache.maven:maven-toolchain-model:jar:4.0.0-rc-4:compile -- module maven.toolchain.model (auto)
   org.apache.maven.resolver:maven-resolver-api:jar:2.0.9:compile -- module org.apache.maven.resolver
   org.apache.maven.resolver:maven-resolver-spi:jar:2.0.9:compile -- module org.apache.maven.resolver.spi
   com.google.code.gson:gson:jar:2.13.1:compile -- module com.google.gson
   org.apache.maven.resolver:maven-resolver-util:jar:2.0.9:compile -- module org.apache.maven.resolver.util
   org.apache.maven.resolver:maven-resolver-impl:jar:2.0.9:compile -- module org.apache.maven.resolver.impl [auto]
   org.slf4j:slf4j-api:jar:2.0.17:compile -- module org.slf4j
   org.codehaus.plexus:plexus-classworlds:jar:2.9.0:compile -- module plexus.classworlds (auto)
   org.codehaus.plexus:plexus-xml:jar:4.1.0:compile -- module plexus.xml (auto)
   org.apache.maven:maven-compat:jar:4.0.0-rc-4:compile -- module maven.compat (auto)
   org.apache.maven:maven-settings-builder:jar:4.0.0-rc-4:compile -- module maven.settings.builder (auto)
   org.apache.maven:maven-toolchain-builder:jar:4.0.0-rc-4:compile -- module maven.toolchain.builder (auto)
   org.apache.maven:maven-resolver-provider:jar:4.0.0-rc-4:compile -- module maven.resolver.provider (auto)
   org.apache.maven.resolver:maven-resolver-transport-file:jar:2.0.9:compile -- module org.apache.maven.resolver.transport.file [auto]
   org.apache.maven.resolver:maven-resolver-transport-apache:jar:2.0.9:compile -- module org.apache.maven.resolver.transport.apache [auto]
   org.apache.httpcomponents:httpclient:jar:4.5.14:compile -- module org.apache.httpcomponents.httpclient [auto]
   org.apache.httpcomponents:httpcore:jar:4.4.16:compile -- module org.apache.httpcomponents.httpcore [auto]
   commons-codec:commons-codec:jar:1.18.0:runtime -- module org.apache.commons.codec
   org.slf4j:jcl-over-slf4j:jar:2.0.17:runtime -- module org.apache.commons.logging
   org.codehaus.plexus:plexus-interactivity-api:jar:1.4:compile -- module plexus.interactivity.api (auto)
   org.codehaus.plexus:plexus-interpolation:jar:1.28:compile -- module plexus.interpolation (auto)
   org.apache.maven.wagon:wagon-provider-api:jar:3.5.3:compile -- module wagon.provider.api (auto)
   org.codehaus.plexus:plexus-utils:jar:4.0.2:compile -- module plexus.utils (auto)
   org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:compile -- module plexus.component.annotations (auto)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions