[
https://jira.codehaus.org/browse/MNG-5723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=356182#comment-356182
]
Ruchir Sachdeva edited comment on MNG-5723 at 11/14/14 4:27 PM:
----------------------------------------------------------------
Thats exactly how it is working
http://mavenrepo.aaa.net/nexus/content/groups/public is a repo group with a
mirror in settings.xml
Mirror in my settings.xml looks like
<mirror>
<id>public</id>
<url>http://mavenrepo.aaa.net/nexus/content/groups/public</url>
<mirrorOf>*,!thirdparty</mirrorOf>
</mirror>
Our use case is such that we cannot have everything in repo group.
The artifact grpId:artId:1.1.0 is a third party jar. It has a free available to
public demo jar. The commercial version is paid. Our project has paid for it
and bought the commercial version. It has the same name as demo version jar,
grpId:artId:1.1.0, and we don't want anyone else to use the commercial version
of jar. So we have introduced a thirdparty nexus repo which is not searchable.
This repo has the commercial version of jar.
We added the repo to pom.xml along with the public repo/group.
Expectation is that for all thirdparty products with same jar name, lookup for
jar in thirdparty repo, if it is not found there, use the jar from public repo
group.
This is not achievable using maven 3.2
was (Author: ruchirsachdeva):
Thats exactly how it is working
http://mavenrepo.aaa.net/nexus/content/groups/public is a repo group with a
mirror in settings.xml
But our use case is such that we cannot have everything in repo group.
The artifact grpId:artId:1.1.0 is a third party jar. It has a free available to
public demo jar. The commercial version is paid. Our project has paid for it
and bought the commercial version. It has the same name as demo version jar,
grpId:artId:1.1.0, and we don't want anyone else to use the commercial version
of jar. So we have introduced a thirdparty nexus repo which is not searchable.
This repo has the commercial version of jar.
We added the repo to pom.xml along with the public repo/group.
Expectation is that for all thirdparty products with same jar name, lookup for
jar in thirdparty repo, if it is not found there, use the jar from public repo
group.
This is not achievable using maven 3.2
> Why does maven 3.2 download same artifact multiple times from all
> repositories defined in pom ?
> -----------------------------------------------------------------------------------------------
>
> Key: MNG-5723
> URL: https://jira.codehaus.org/browse/MNG-5723
> Project: Maven
> Issue Type: Bug
> Affects Versions: 3.2.1, 3.2.2, 3.2.3
> Reporter: Ruchir Sachdeva
>
> I have defined 2 repositories in pom.xml like below. One is public and other
> is thirdparty.
> <repositories>
> <repository>
> <id>public</id>
> <name>Nexus - Public Repositories</name>
> <layout>default</layout>
> <url>http://mavenrepo.aaa.net/nexus/content/groups/public</url>
> <releases>
> <enabled>true</enabled>
> </releases>
> <snapshots>
> <enabled>false</enabled>
> </snapshots>
> </repository>
> <repository>
> <id>thirdparty</id>
> <name>Nexus - Third Party</name>
> <layout>default</layout>
>
> <url>http://mavenrepo.aaa.net/nexus/content/repositories/thirdparty</url>
> <releases>
> <enabled>true</enabled>
> <updatePolicy>always</updatePolicy>
> </releases>
> <snapshots>
> <enabled>false</enabled>
> </snapshots>
> </repository>
> </repositories>
> Say there is a dependency called grpId:artId:1.1.0 which I have defined in my
> pom. This dependency is present in both the repositories defined above-
> public and thirdparty
> When I run mvn install I see different behaviours in the way maven downloads
> the grpId:artId:1.1.0 artifact based on the version of maven i am using.
> Behaviours :-
> **1. Using Maven 3.1 and previous versions**
>
> - **a.** Maven looks up the dependency grpId:artId:1.1.0 in 'public' repo
> - **b.** Maven finds the dependency and downloads it.
> - **c.** Maven does not look up the dependency grpId:artId:1.1.0 in
> 'thirdparty' repo as it is already downloaded from previous repository.
> **2. Using Maven 3.2**
>
> - **a.** Maven looks up the dependency grpId:artId:1.1.0 in 'public' repo
> - **b.** Maven finds the dependency in 'public' repo and downloads it.
> - **c.** Maven again looks up the dependency grpId:artId:1.1.0 in
> 'thirdparty' repo even though it is already downloaded from 'public'
> repository.
> - **d.** Maven finds the dependency in 'thirdparty' repo and downloads it
> and overwrites the dependency downloaded from 'public' repo previously
> I wonder why maven is behaving in an absurd manner for maven-3.2. It should
> stop looking further for the dependency which is already resolved and
> downloaded from one repository .
> Is there a way to achieve it using maven 3.2 ?
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)