RE: Advantages of using a Repository Manager

2011-04-25 Thread David Bruley
Hi Sony,

Glad it was helpful.

I'll try to clear up your questions on the staging suite.

Short answer - the staging repositories contain our internal release candidate 
artifacts only.  They do not contain any third party or external artifacts.

Long answer:

It's a feature in the professional version of Nexus that is used to make 
artifacts available in a segregated repository for functions such as QA before 
making them available for broader use.  You set up configurations in Nexus to 
filter by Artifact ID or Group ID.  When doing a maven deploy, Nexus will check 
the artifacts against the filters you configured, if any of the artifacts 
match, it dynamically creates a staging repository to hold the artifacts.  If 
they don't pass QA or approval, you can drop the whole staging repository which 
ensures they cannot be used.  If they do pass, the contents of the entire 
staging repo can be released to an approved repo.

We use this feature for our internally developed artifacts.  Basically, when we 
build a release candidate and do a maven deploy the artifacts go to a staging 
repo (Maven settings.xml is configured with a special Nexus URL for deploy).  
You can configure different filters (targets), so you can have multiple staging 
repositories too.  The staging repos do not have third party artifacts, maven 
plugins, etc.  However, we configured a repository group as I also referenced 
for these test/QA purposes.  This test group repo contains our 3rd party repo, 
our approved external artifact repo (which would contain things like maven 
plugins and other artifacts available on central or other external repos), our 
"released" repo containing our internally developed artifacts, and then any 
dynamically created staging repo.  We can then point an instance of Maven at 
this special group and have access to all of our approved artifacts as well as 
the release candidate artifacts.



I'd recommend checking out the documentation - 
http://www.sonatype.com/books/nexus-book/reference/staging.html - as it 
explains it a lot better than I can and talks about some additional features 
that we don't use.  You might also want to check the documentation on the repo 
groups for a clearer explanation than I provided - 
http://www.sonatype.com/books/nexus-book/reference/config-sect-managing-groups.html

I would agree with the other posts though, sounds like selecting and setting up 
a repository manager of some kind would be useful for you.  Kind of sounds like 
you're almost hosting your own in a way with the Apache web server/private repo 
combo.  Nexus and Artifactory are the two products I usually see others 
reference, but I'm sure there are a few other products out there too.  Both 
Nexus and Artifactory offer free versions as well as licensed versions with 
some additional features should you have the need for them.  Artifactory has 
pretty good documentation too on their site if you wanted to research their 
features.

Good luck!

Dave Bruley
Lead Technical Analyst
CoreLink Administrative Solutions

-Original Message-
From: Sony Antony [mailto:sony.ant...@gmail.com]
Sent: Thursday, April 21, 2011 7:48 PM
To: Maven Users List
Subject: Re: Advantages of using a Repository Manager

David :
Great writeup. Many thanks.

"Is that one copy per project built? Or do all builds on Hudson use that
private repo"
there is only one private repo for hudson, which was created only once in
teh beginning of hudson setup, by copying from teh "master repository"
( We have multiple independent hudson installations building independent
projects and different releases of teh same project. Each of these hudson
installations get their own private repository when they are setup in the
beginning - copied from teh master repository )


1. The biggest take away from your list was teh ability to easily search for
classes from the nexus interface. Agree this is something that would be very
handy for us.

2. I did not quite understand your staging suite. What is in the staging
repository ? Your project artifacts ? Will it include third party
dependencies ? What about maven plugins ?

3. As for how developers building it. We also have what we call "taiga
builds". These are complete builds outside maven. These are kicked off many
times during teh day ( any developer can kick off these ). This was also
setup by copying and creating a private repository in the beginning ( only
once ).  Whenever we do a taiga build, latest project artifacts get added to
this private repository. Now, we have put an Apache web server around this
private repository. All developers point to this webserver using a
setting.xml which defines this web server as the only remote repository.
( I acknowledge that this arrangement has teh problem that developers might
get different artifacts from different builds - if the latest build failed
after building some of teh artifacts successfu

Re: Advantages of using a Repository Manager

2011-04-21 Thread Sony Antony
;
> Again, situation might differ for you and this is not intended to be a
> sales pitch for Nexus - I'm sure other Repository Managers have similar
> functionality as well - just sharing our experiences.
>
> Hope it helps.
>
> Dave Bruley
> Lead Technical Analyst
> CoreLink Administrative Solutions
>
> -Original Message-
> From: Sony Antony [mailto:sony.ant...@gmail.com]
> Sent: Wednesday, April 20, 2011 8:03 AM
> To: Maven Users List
> Subject: Re: Advantages of using a Repository Manager
>
> Thank you for the link.
> I had looked at this section from teh book around a year back.
> I couldnt find any clear advantage since we have a  pre approved and pre
> decided list of plugins and dependencies.
>
> Currently we have a master repository which is populated only when project
> decides to add a new dependency or plugin.
> At teh initial hudson setup, this repository is copied to a private
> location, and hudson is pointed to this private location ( this is one time
> only and is not done with each build ).
> Build is done in the offline maven mode.
>
> Given this scenario, Im trying to see if repository managers can provide
> any
> advantage over what we already have.
>
>
> --sony
>
> 2011/4/20 Tamás Cservenák 
>
> > See here for reasons:
> >
> >
> >
> http://www.sonatype.com/books/nexus-book/reference/sect-repoman-reasons.html
> >
> >
> > Thanks,
> > ~t~
> >
> > On Wed, Apr 20, 2011 at 2:23 PM, Sony Antony 
> > wrote:
> >
> > > Im trying to evaluate whether we should use a repository manager.
> > >
> > > Will somebody post at least a few of the advantages here
> > > Our project uses a list of pre approved ( and pre downloaded )
> > dependencies
> > > and plugins.
> > >
> > > --sony
> > >
> >
>
> Confidentiality Notice: This communication and any attachments are for the
> sole use of the intended recipient(s) and may contain confidential and
> privileged information. Any unauthorized review, use, disclosure,
> distribution or copying is prohibited. If you are not the intended
> recipient(s), please contact the sender by replying to this e-mail and
> destroy/delete all copies of this e-mail message.
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>


Re: Advantages of using a Repository Manager

2011-04-21 Thread Brian Smith
Hi there,

We have a slightly more open setup than you do where developers can add
libraries _provided_ they're licensed under pre-approved business friendly
licenses.

Artifactory works excellently for us in that respect as it allows us to
handle permissions at the right level, I also personally find the UI to be
very intuitive and simple.

We also use the repository to publish API libraries to our internal
solutions teams and as an archive of customer deliverables quickly
accessible by support.

Repository Managers in general are very useful and Artifactory (power pack)
in particular would get a recommendation from me.

Kind regards

Brian



On 20 April 2011 13:23, Sony Antony  wrote:

> Im trying to evaluate whether we should use a repository manager.
>
> Will somebody post at least a few of the advantages here
> Our project uses a list of pre approved ( and pre downloaded ) dependencies
> and plugins.
>
> --sony
>


Re: Advantages of using a Repository Manager

2011-04-21 Thread Ron Wheeler
Great note. Thanks for taking the time to put this together. It has some 
great ideas that even experienced Nexus users will find helpful.


We are not nearly this sophisticated but we found that the free version 
of Nexus (competitors might do just as well) made our use and 
understanding of Maven much more trouble-free since it added a lot of 
transparency to dependency management.
The support for 3rd party libraries that are not released through Maven 
Central is very useful.
We are just using the free version since we have a very small team 
although we have lots of POMs - about 90 in our largest project.


I would strongly recommend getting a repo into any development 
environment that includes Maven.


Ron

On 21/04/2011 10:48 AM, David Bruley wrote:

Want to make sure I understand your current setup correctly.

You have a local repository on a file system somewhere that contains all the 
artifacts approved for use in your builds.  Then you create a copy of that 
repository and point Hudson to that private copy.  Is that one copy per project 
built?  Or do all builds on Hudson use that private repo?

Anyway, we used an older version of a particular repo manager a few years back 
but switched over to the Professional version of Nexus last fall.  We too need 
to lock down what versions of artifacts developers use and Nexus has worked 
well for that.

Not knowing your environment or process, I'm not sure if these would benefit 
you, but thought I would share the benefits we've seen:

- Nexus Staging Suite

- This was probably the main reason we went with Nexus Pro.  When we do a release build, we can intercept 
the artifact(s) and segregate them in a staging repository.  If they do not pass testing or QA, we can 
"drop" the whole repo and those artifacts are gone.  If everything passes, we can 
"release" the contents of the staging repo to our "production approved" repository.  
Helps ensure an artifact is not made available for general use until it's passed everything and has been 
formally released.  It's worked well with our particular release process.

- Nexus Procurement Suite

- This has been a handy feature on those occasions when we do need to 
update our external artifacts, such as a new version of a plugin.  Helps 
control how new external artifacts are introduced inside the company.

- Search capabilities

- The UI provides a nice capability for searching for an artifact.  Has 
some cool features where we can drill into the contents of a particular version 
of a jar or easily get the XML of the GAV for an artifact so we can paste it 
into our POM.  Can search on part of a GAV or even a class name to find 
artifacts containing a particular class.

- Repository Grouping

   - We can create group repositories in Nexus that are configured to use 
several individual repositories.  We can then use different profiles with Maven 
to point to different groups.  So our CI builds in development can point to one 
group and our release builds can point to a different group.

- Consistent repos used by both developers and the CI servers

   - Not sure how your developers build.  Do they point at the same local repo 
as Hudson or are they looking external when they build local?  We have each 
developer's Maven settings file configured to point to Nexus as well so there 
are no surprises when the code builds on Hudson as far as missing dependency 
versions, etc.

Again, situation might differ for you and this is not intended to be a sales 
pitch for Nexus - I'm sure other Repository Managers have similar functionality 
as well - just sharing our experiences.

Hope it helps.

Dave Bruley
Lead Technical Analyst
CoreLink Administrative Solutions

-Original Message-
From: Sony Antony [mailto:sony.ant...@gmail.com]
Sent: Wednesday, April 20, 2011 8:03 AM
To: Maven Users List
Subject: Re: Advantages of using a Repository Manager

Thank you for the link.
I had looked at this section from teh book around a year back.
I couldnt find any clear advantage since we have a  pre approved and pre
decided list of plugins and dependencies.

Currently we have a master repository which is populated only when project
decides to add a new dependency or plugin.
At teh initial hudson setup, this repository is copied to a private
location, and hudson is pointed to this private location ( this is one time
only and is not done with each build ).
Build is done in the offline maven mode.

Given this scenario, Im trying to see if repository managers can provide any
advantage over what we already have.


--sony

2011/4/20 Tamás Cservenák


See here for reasons:


http://www.sonatype.com/books/nexus-book/reference/sect-repoman-reasons.html


Thanks,
~t~

On Wed, Apr 20, 2011 at 2:23 PM, Sony Antony
wrote:


Im trying to evaluate whether we should use a repository manager.

Will somebody post at least a few of the advantages here
Our project uses a list of pr

RE: Advantages of using a Repository Manager

2011-04-21 Thread David Bruley
Want to make sure I understand your current setup correctly.

You have a local repository on a file system somewhere that contains all the 
artifacts approved for use in your builds.  Then you create a copy of that 
repository and point Hudson to that private copy.  Is that one copy per project 
built?  Or do all builds on Hudson use that private repo?

Anyway, we used an older version of a particular repo manager a few years back 
but switched over to the Professional version of Nexus last fall.  We too need 
to lock down what versions of artifacts developers use and Nexus has worked 
well for that.

Not knowing your environment or process, I'm not sure if these would benefit 
you, but thought I would share the benefits we've seen:

- Nexus Staging Suite

   - This was probably the main reason we went with Nexus Pro.  When we do a 
release build, we can intercept the artifact(s) and segregate them in a staging 
repository.  If they do not pass testing or QA, we can "drop" the whole repo 
and those artifacts are gone.  If everything passes, we can "release" the 
contents of the staging repo to our "production approved" repository.  Helps 
ensure an artifact is not made available for general use until it's passed 
everything and has been formally released.  It's worked well with our 
particular release process.

- Nexus Procurement Suite

   - This has been a handy feature on those occasions when we do need to update 
our external artifacts, such as a new version of a plugin.  Helps control how 
new external artifacts are introduced inside the company.

- Search capabilities

   - The UI provides a nice capability for searching for an artifact.  Has some 
cool features where we can drill into the contents of a particular version of a 
jar or easily get the XML of the GAV for an artifact so we can paste it into 
our POM.  Can search on part of a GAV or even a class name to find artifacts 
containing a particular class.

- Repository Grouping

  - We can create group repositories in Nexus that are configured to use 
several individual repositories.  We can then use different profiles with Maven 
to point to different groups.  So our CI builds in development can point to one 
group and our release builds can point to a different group.

- Consistent repos used by both developers and the CI servers

  - Not sure how your developers build.  Do they point at the same local repo 
as Hudson or are they looking external when they build local?  We have each 
developer's Maven settings file configured to point to Nexus as well so there 
are no surprises when the code builds on Hudson as far as missing dependency 
versions, etc.

Again, situation might differ for you and this is not intended to be a sales 
pitch for Nexus - I'm sure other Repository Managers have similar functionality 
as well - just sharing our experiences.

Hope it helps.

Dave Bruley
Lead Technical Analyst
CoreLink Administrative Solutions

-Original Message-
From: Sony Antony [mailto:sony.ant...@gmail.com]
Sent: Wednesday, April 20, 2011 8:03 AM
To: Maven Users List
Subject: Re: Advantages of using a Repository Manager

Thank you for the link.
I had looked at this section from teh book around a year back.
I couldnt find any clear advantage since we have a  pre approved and pre
decided list of plugins and dependencies.

Currently we have a master repository which is populated only when project
decides to add a new dependency or plugin.
At teh initial hudson setup, this repository is copied to a private
location, and hudson is pointed to this private location ( this is one time
only and is not done with each build ).
Build is done in the offline maven mode.

Given this scenario, Im trying to see if repository managers can provide any
advantage over what we already have.


--sony

2011/4/20 Tamás Cservenák 

> See here for reasons:
>
>
> http://www.sonatype.com/books/nexus-book/reference/sect-repoman-reasons.html
>
>
> Thanks,
> ~t~
>
> On Wed, Apr 20, 2011 at 2:23 PM, Sony Antony 
> wrote:
>
> > Im trying to evaluate whether we should use a repository manager.
> >
> > Will somebody post at least a few of the advantages here
> > Our project uses a list of pre approved ( and pre downloaded )
> dependencies
> > and plugins.
> >
> > --sony
> >
>

Confidentiality Notice: This communication and any attachments are for the sole 
use of the intended recipient(s) and may contain confidential and privileged 
information. Any unauthorized review, use, disclosure, distribution or copying 
is prohibited. If you are not the intended recipient(s), please contact the 
sender by replying to this e-mail and destroy/delete all copies of this e-mail 
message.


-
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org



Re: Advantages of using a Repository Manager

2011-04-20 Thread Sony Antony
Thank you for the link.
I had looked at this section from teh book around a year back.
I couldnt find any clear advantage since we have a  pre approved and pre
decided list of plugins and dependencies.

Currently we have a master repository which is populated only when project
decides to add a new dependency or plugin.
At teh initial hudson setup, this repository is copied to a private
location, and hudson is pointed to this private location ( this is one time
only and is not done with each build ).
Build is done in the offline maven mode.

Given this scenario, Im trying to see if repository managers can provide any
advantage over what we already have.


--sony

2011/4/20 Tamás Cservenák 

> See here for reasons:
>
>
> http://www.sonatype.com/books/nexus-book/reference/sect-repoman-reasons.html
>
>
> Thanks,
> ~t~
>
> On Wed, Apr 20, 2011 at 2:23 PM, Sony Antony 
> wrote:
>
> > Im trying to evaluate whether we should use a repository manager.
> >
> > Will somebody post at least a few of the advantages here
> > Our project uses a list of pre approved ( and pre downloaded )
> dependencies
> > and plugins.
> >
> > --sony
> >
>


Re: Advantages of using a Repository Manager

2011-04-20 Thread Tamás Cservenák
See here for reasons:

http://www.sonatype.com/books/nexus-book/reference/sect-repoman-reasons.html


Thanks,
~t~

On Wed, Apr 20, 2011 at 2:23 PM, Sony Antony  wrote:

> Im trying to evaluate whether we should use a repository manager.
>
> Will somebody post at least a few of the advantages here
> Our project uses a list of pre approved ( and pre downloaded ) dependencies
> and plugins.
>
> --sony
>


Advantages of using a Repository Manager

2011-04-20 Thread Sony Antony
Im trying to evaluate whether we should use a repository manager.

Will somebody post at least a few of the advantages here
Our project uses a list of pre approved ( and pre downloaded ) dependencies
and plugins.

--sony