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.
> > > >
> > >
> >
>

Reply via email to