If I have two dependencies:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.19.2</version>
</dependency>
<dependency>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>3.0.3</version>
</dependency>
and legitimately want both of them in my SciJava application (when populating an app), the tools.jackson.core artifact will be detected as a newer version of the com.fasterxml.jackson.core artifact because of the shared name.
My feeling is that this is generally incorrect, or at least may be unintentionally hiding some issues.
I see a few options for dealing with this:
- We could always treat different GAs as different
- We could add support for a GA rename map to the mojo configuration
- Mojos, e.g. the
PopulateMojoApp, that know the dependencies can make an assessment: if similarly-named artifacts with different groupIds are declared as dependencies (especially non-recursively) then they should ensure they are treated uniquely and not as duplicates
If I have two dependencies:
and legitimately want both of them in my SciJava application (when populating an app), the
tools.jackson.coreartifact will be detected as a newer version of thecom.fasterxml.jackson.coreartifact because of the shared name.My feeling is that this is generally incorrect, or at least may be unintentionally hiding some issues.
I see a few options for dealing with this:
PopulateMojoApp, that know the dependencies can make an assessment: if similarly-named artifacts with different groupIds are declared as dependencies (especially non-recursively) then they should ensure they are treated uniquely and not as duplicates