[ 
https://issues.apache.org/jira/browse/MNG-8097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17850036#comment-17850036
 ] 

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.
   
   > did you maybe mix up the "former and latter"?
   
   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)

Reply via email to