[
https://issues.apache.org/jira/browse/MNG-8097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17850037#comment-17850037
]
ASF GitHub Bot commented on MNG-8097:
-------------------------------------
kwin commented on code in PR #529:
URL: https://github.com/apache/maven-site/pull/529#discussion_r1617266482
##########
content/apt/pom.apt.vm:
##########
@@ -271,13 +271,20 @@ mvn install:install-file -Dfile=non-maven-proj.jar
-DgroupId=some.group -Dartifa
you browse the Maven central repository, you will notice that the
classifiers <<<sources>>> and <<<javadoc>>> are used
to deploy the project source code and API docs along with the packaged class
files.
+ The classifier may also be derived from the <<type>> in case the related
{{{/ref/current/maven-core/artifact-handlers.html} artifact handler}} defines
one.
+
* <<type>>:\
Corresponds to the chosen dependency type. This defaults to <<<jar>>>. While
it usually represents
- the extension on the filename of the dependency, that is not always the
case: a type can be mapped to a
+ the extension of the referenced artifact, that is not always the case: a
type can be mapped to a
different extension and a classifier. The type often corresponds to the
packaging used, though this is
also not always the case. Some examples are <<<jar>>>, <<<ejb-client>>> and
<<<test-jar>>>:
see {{{/ref/current/maven-core/artifact-handlers.html}default artifact
handlers}} for a list. New types can be
defined by plugins that set <<<extensions>>> to true, so this is not a
complete list.
+
+ In case there is an artifact handler defined there are <two> different ways
of referencing the same dependency:
Review Comment:
> by removal of "filename", the term "extension" is suddenly changing it's
meaning (maven extension? this was my first thought while trying to comprehend
the message)
you kind of said the opposite in
https://github.com/apache/maven/pull/1466#issuecomment-2054144734. This is the
extension of the artifact which is not necessarily the extension of the
filename!
>> The depensency extension is told by type. Deoendency is never "anywhere
on disk", it may come from repo only.
or in https://github.com/apache/maven/pull/1466#issuecomment-2054145589
>> It is artifact that you need to inspect, not the backing file.
yes, good catch will fix.
> I find this very confusing all in all. Type is type, why do you want to
mixin here file extension
First of all, there was a mention of file extension before this PR, with
this PR I only refer to artifact extension (do you find this part
confusing???). This PR rather clarifies that there may be two ways to reference
the same artifact, examples:
1. ```
<dependency>
<groupId>org.project</groupId>
<artifactId>reusable-test-support</artifactId>
<version>1.0</version>
<classifier>tests</classifier>
</dependency>
```
vs.
```
<dependency>
<groupId>org.project</groupId>
<artifactId>reusable-test-support</artifactId>
<version>1.0</version>
<type>test-jar</type>
</dependency>
2. ```
<dependency>
<groupId>org.project</groupId>
<artifactId>my-osgi-bundle</artifactId>
<version>1.0</version>
</dependency>
```
vs.
```
<dependency>
<groupId>org.project</groupId>
<artifactId>my-osgi-bundle</artifactId>
<version>1.0</version>
<type>bundle</type> <!
> Validate that each dependency->type is a type registered in an artifact
> handler
> -------------------------------------------------------------------------------
>
> Key: MNG-8097
> URL: https://issues.apache.org/jira/browse/MNG-8097
> Project: Maven
> Issue Type: New Feature
> Reporter: Konrad Windszus
> Priority: Major
>
> Currently often the dependency's type is being set to the extension and the
> resolution is lenient, i.e. if there is no artifact handler defining the
> value given in {{dependency->type}} resolution transparently uses the type as
> extension.
> That can potentially lead to two issues:
> 1. Resolution might fail with surprising error messages like
> {code}
> Could not resolve dependencies for project ....: The following artifacts
> could not be resolved: <gav>: Could not transfer artifact
> <groupId>:<artifactId>:<unknown-type>:<version> from/to ...
> {code}
> This is an issue for all types not defined by Maven Core itself, e.g. for
> https://jackrabbit.apache.org/filevault-package-maven-plugin/index.html which
> registers an artifact handler for type {{content-package}} with extension
> {{zip}}.
> 2. The information {{addedToClasspath}}, {{includesDependencies}} and
> {{classifier}} from the artifact handler is not evaluated
> Compare with
> https://maven.apache.org/repositories/artifacts.html#but-where-do-i-set-artifact-extension
--
This message was sent by Atlassian Jira
(v8.20.10#820010)