> > Also, do i need to redefine 'central' it looks redundant to me
It's best-practice IMO. It ensures that the central definition declared in the super-POM is overwritten with a dummy (not working) URL. It will/should then be handled by the mirror so that it is redirected to the internal mirror. If, for any reason, the mirror definition is removed or not correctly declared you will then quickly noticed this as your Maven build will not work (as the calls to 'central' will fail). /Anders > > Thanks > > -D > > > > On Mon, May 26, 2014 at 10:34 PM, Anders Hammar <[email protected]> wrote: > > > For my solution on this topic I didn't declare a mirror for > > 'plugin-central', i.e. I didn't have the 'plugin-repo' mirror > declaration. > > I does not add anything as it is only a mirror for one repo. > > > > /Anders > > > > > > On Sun, May 25, 2014 at 3:00 AM, Dan Tran <[email protected]> wrote: > > > > > I got some thing working > > > > > > 1. at my repo manager, create a proxy, called plugin-central, to host > > > another central.maven.org/maven2 > > > 2. reconfigure my global settings.xml with the following contents. > Please > > > help to review this content > > > > > > <mirrors> > > > <mirror> > > > <id>product-repo</id> > > > <mirrorOf>*,!plugin-central</mirrorOf> > > > <name>Internal Maven Repository Manager</name> > > > <url>http://repos.xxx.com:8081/nexus/content/groups/public</url> > > > </mirror> > > > <mirror> > > > <id>plugin-repo</id> > > > <mirrorOf>plugin-central</mirrorOf> > > > <name>Internal Maven Repository Manager for plugin and its > > transitive > > > dependencies</name> > > > <url> > http://repos.xxxx.com:8081/nexus/content/groups/plugin-public > > > </url> > > > </mirror> > > > </mirrors> > > > > > > <profiles> > > > <profile> > > > <id>redefine-default-repositories</id> > > > <repositories> > > > <repository> > > > <!-- do we really need this?? since it is mirrored any way > --> > > > <id>central</id> > > > <url>http://central</url> > > > <releases><enabled>true</enabled></releases> > > > <snapshots><enabled>true</enabled></snapshots> > > > </repository> > > > </repositories> > > > <pluginRepositories> > > > <!-- this allow use to separate product and plugin dependencies > > > into separate mirrors/proxy --> > > > <pluginRepository> > > > <id>plugin-central</id> <!--must be first in list --> > > > <url>http://central</url> > > > <releases><enabled>true</enabled></releases> > > > <snapshots><enabled>true</enabled></snapshots> > > > </pluginRepository> > > > <!-- plugin download should never get here since 'central' > > already > > > cover by another proxy in plugin-central mirror--> > > > <pluginRepository> > > > <id>central</id> > > > <url>http://central</url> > > > <releases><enabled>true</enabled></releases> > > > <snapshots><enabled>true</enabled></snapshots> > > > </pluginRepository> > > > </pluginRepositories> > > > </profile> > > > </profiles> > > > > > > <activeProfiles> > > > <activeProfile>redefine-default-repositories</activeProfile> > > > </activeProfiles> > > > > > > > > > Thank you every one for participate in this discussion, specially > Anders > > > for leading to this solution > > > > > > > > > If you have anything you want to add please chime in > > > > > > > > > -Dan > > > > > > > > > > > > On Sat, May 24, 2014 at 1:19 AM, Anders Hammar <[email protected]> > > wrote: > > > > > > > It will if you use the same id, ie 'central'. > > > > > > > > /Anders (mobile) > > > > Den 24 maj 2014 09:36 skrev "Dan Tran" <[email protected]>: > > > > > > > > > Anders' suggestion sounds very logical > > > > > > > > > > however, i found this at super pom > > > > > > > > > > <repositories> > > > > > <repository> > > > > > <id>central</id> > > > > > <name>Central Repository</name> > > > > > <url>http://repo.maven.apache.org/maven2</url> > > > > > <layout>default</layout> > > > > > <snapshots> > > > > > <enabled>false</enabled> > > > > > </snapshots> > > > > > </repository> > > > > > </repositories> > > > > > > > > > > <pluginRepositories> > > > > > <pluginRepository> > > > > > <id>central</id> > > > > > <name>Central Repository</name> > > > > > <url>http://repo.maven.apache.org/maven2</url> > > > > > <layout>default</layout> > > > > > <snapshots> > > > > > <enabled>false</enabled> > > > > > </snapshots> > > > > > <releases> > > > > > <updatePolicy>never</updatePolicy> > > > > > </releases> > > > > > </pluginRepository> > > > > > </pluginRepositories> > > > > > > > > > > Is there a way to disable/clear out the super pom > pluginRepositories? > > > > > If I add my own pluginRepositories, will it override the super pom > > > > > one? > > > > > > > > > > > > > > > Thanks > > > > > > > > > > Dan > > > > > > > > > > > > > > > > > > > > > > > > > On Tue, May 6, 2014 at 6:20 AM, Barrie Treloar <[email protected] > > > > > > wrote: > > > > > > > > > > > On 6 May 2014 20:23, Anders Hammar <[email protected]> wrote: > > > > > > > > > > > > > > > > > > > > > > Presumably you are trying to separate artifacts used by > plugins > > > > > during > > > > > > > > your build (where you might use e.g. GPL licensed modules) > from > > > > > > artifacts > > > > > > > > used as dependencies in your project proper (where using that > > > same > > > > > GPL > > > > > > > > licensed modules would make your legal department scream) by > > > > > separating > > > > > > > the > > > > > > > > repositories used to provide them. > > > > > > > > > > > > > > > > As far as I know/understand all artifacts are downloaded to > the > > > > same > > > > > > > local > > > > > > > > cache repository (~/.m2/repository), regardless of whether > they > > > > were > > > > > > > > required by some plugin or as a dependency of your project. > > > > > > > > > > > > > > > > This makes them available for both purposes and thus > > obliterates > > > > all > > > > > > your > > > > > > > > efforts of keeping them separate. > > > > > > > > > > > > > > > > Maven Masters: Please correct me if I'm wrong. > > > > > > > > > > > > > > > > > > > > > > I don't think this is correct with Maven 3. Maven 3 uses Aether > > > which > > > > > > AFAIK > > > > > > > keeps the repository id for the artifact to verify from where > it > > > was > > > > > > > downloaded. Haven't verified for this use case though. > > > > > > > > > > > > > > So, using Maven 3 it should be possible to specify one > repository > > > > > > > declaration for your deps and one pluginRepository declaration > > > (with > > > > a > > > > > > > different repo id) for your plugins (incl deps). If you msut > use > > > > mirror > > > > > > > declarations, I would use this for the deps and add exclusions > > > (using > > > > > > '!') > > > > > > > for any pluginRepository. > > > > > > > > > > > > > > /Anders > > > > > > > > > > > > > > > > > > I don't remember what happens for duplicates. > > > > > > I think it used to complain that the artifact doesn't exist (if > the > > > one > > > > > it > > > > > > downloaded from is not available, even though its available > > > elsewhere). > > > > > > > > > > > > The GPL example isn't a good one, as the output of running GPL is > > not > > > > GPL > > > > > > itself. > > > > > > > > > > > > I think Nexus allows you to restrict things by licence so that > you > > > can > > > > > > curate what is available in your repository manager. You'd have > to > > > look > > > > > at > > > > > > the docs to find out. > > > > > > > > > > > > > > > > > > > > >
