This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch feature/clarify-dependency-types in repository https://gitbox.apache.org/repos/asf/maven-site.git
commit 827787d148304422fde09b25a36aff0c9029baf7 Author: Konrad Windszus <k...@apache.org> AuthorDate: Sat May 18 17:09:03 2024 +0200 [MNG-8097] Outline the two different ways to reference a dependency (with a related artifact handler) --- content/apt/pom.apt.vm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/content/apt/pom.apt.vm b/content/apt/pom.apt.vm index 2dde78d7..32388734 100644 --- a/content/apt/pom.apt.vm +++ b/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 is <two> different ways of referencing the same dependency. + By using the <extension> or by using the registered <type> value. The former considers all attributes from the artifact handler, while the latter + never adds the dependency to the classpath nor includes its dependencies. Further information in + {{{/repositories/artifacts.html#but-where-do-i-set-artifact-extension}Maven Artifacts}}. * <<scope>>:\ This element refers to the classpath of the task at hand (compiling and runtime, testing, etc.) as well as