Re: [M2] Managing Repositories

2006-09-17 Thread Alexandre Poitras

I think you are trying to control dependencies and not plugins right?
So in order to do that, you need two different repositores. One for
dependencies and one for plugin. Control access to the dependency one
and allow free access to the plugin one.

On 9/16/06, Andreas Guther [EMAIL PROTECTED] wrote:


Hi,

I am struggling with the question on how to maintain a controlled
internal repository with Maven 2.

We want to have full control over the downloaded dependencies and
configured Maven to use as central repository our internal repository
server.  With this configuration no external repository is used.

In my settings.xml file I have configured Ibiblio as external repository
server and activate the profile whenever I have to use components with
dependencies that are not in our internal repository.

The problem I have is that getting the internal/central repository
updated with the new dependencies is rather a tedious and time intensive
task, especially if for example a maven plug-in is added that comes with
lots of transient dependencies.

My question is:  Ho do other teams deal with that problem?  Are there
tools that list differences between two different repositories (local
and internal)?

I used Maven Archiva as proxy repository but that does not give us the
control over what gets added to the repository.

Thanks in advance for any hint and suggestion.

Andreas


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [M2] Managing Repositories

2006-09-17 Thread Henrique Prange

Hi Andreas,

Take a look at Proximity:

http://proximity.abstracthorizon.org/

Bests,

Henrique

Andreas Guther wrote:

Hi,

I am struggling with the question on how to maintain a controlled
internal repository with Maven 2.

We want to have full control over the downloaded dependencies and
configured Maven to use as central repository our internal repository
server.  With this configuration no external repository is used.

In my settings.xml file I have configured Ibiblio as external repository
server and activate the profile whenever I have to use components with
dependencies that are not in our internal repository.

The problem I have is that getting the internal/central repository
updated with the new dependencies is rather a tedious and time intensive
task, especially if for example a maven plug-in is added that comes with
lots of transient dependencies.

My question is:  Ho do other teams deal with that problem?  Are there
tools that list differences between two different repositories (local
and internal)?

I used Maven Archiva as proxy repository but that does not give us the
control over what gets added to the repository.

Thanks in advance for any hint and suggestion.

Andreas
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [M2] Managing Repositories

2006-09-17 Thread Lakshman Srilakshmanan
Hi Andreas,

I had the same problem and the way I resolved it is as follows.

Firstly I used Proximity as my proxy server to create my internal
repository. 
Then I implemented a web server to read the internal repository. The
developers were provided with the web servers http link.

The above approach ensured that the developers could not download any
files into the internal Repository automatically. 

If I needed to install a new plugin/dependency I used to use the http
link provided by Proximity. This would first put the files into the
internal repository before installing it in my local repository.

Hope this helps.

Thanks
Lakshman


 -Original Message-
 From: Andreas Guther [mailto:[EMAIL PROTECTED]
 Sent: Sunday, 17 September 2006 3:59 AM
 To: Maven Users List
 Subject: [M2] Managing Repositories
 
 
 Hi,
 
 I am struggling with the question on how to maintain a controlled
 internal repository with Maven 2.
 
 We want to have full control over the downloaded dependencies and
 configured Maven to use as central repository our internal repository
 server.  With this configuration no external repository is used.
 
 In my settings.xml file I have configured Ibiblio as external
repository
 server and activate the profile whenever I have to use components with
 dependencies that are not in our internal repository.
 
 The problem I have is that getting the internal/central repository
 updated with the new dependencies is rather a tedious and time
intensive
 task, especially if for example a maven plug-in is added that comes
with
 lots of transient dependencies.
 
 My question is:  Ho do other teams deal with that problem?  Are there
 tools that list differences between two different repositories (local
 and internal)?
 
 I used Maven Archiva as proxy repository but that does not give us the
 control over what gets added to the repository.
 
 Thanks in advance for any hint and suggestion.
 
 Andreas
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [M2] Managing Repositories

2006-09-17 Thread Barrie Treloar

On 9/17/06, Andreas Guther [EMAIL PROTECTED] wrote:


Hi,

I am struggling with the question on how to maintain a controlled
internal repository with Maven 2.

We want to have full control over the downloaded dependencies and
configured Maven to use as central repository our internal repository
server.  With this configuration no external repository is used.


I will link to my response to a similar query.
http://www.nabble.com/forum/ViewPost.jtp?post=6087922framed=y

Essentially I question the need for a locked down repository.
About the only time I can see a need for this is because of security
restrictions on network connections (i.e. defence with a secure and
insecure network, as the secure network can not connect to ibiblio).
Any other reason is just making busy work and adds no value.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [M2] Managing Repositories

2006-09-17 Thread Andreas Guther
Hi Laksham,

I am currently using Maven Archiva which provides a Proxy repository and
is probably similar to Proximity.  I will definitely have a look at
Proximity.

Thanks for your reply.

Andreas

-Original Message-
From: Lakshman Srilakshmanan
[mailto:[EMAIL PROTECTED] 
Sent: Sunday, September 17, 2006 5:25 PM
To: Maven Users List
Subject: RE: [M2] Managing Repositories

Hi Andreas,

I had the same problem and the way I resolved it is as follows.

Firstly I used Proximity as my proxy server to create my internal
repository. 
Then I implemented a web server to read the internal repository. The
developers were provided with the web servers http link.

The above approach ensured that the developers could not download any
files into the internal Repository automatically. 

If I needed to install a new plugin/dependency I used to use the http
link provided by Proximity. This would first put the files into the
internal repository before installing it in my local repository.

Hope this helps.

Thanks
Lakshman


 -Original Message-
 From: Andreas Guther [mailto:[EMAIL PROTECTED]
 Sent: Sunday, 17 September 2006 3:59 AM
 To: Maven Users List
 Subject: [M2] Managing Repositories
 
 
 Hi,
 
 I am struggling with the question on how to maintain a controlled
 internal repository with Maven 2.
 
 We want to have full control over the downloaded dependencies and
 configured Maven to use as central repository our internal repository
 server.  With this configuration no external repository is used.
 
 In my settings.xml file I have configured Ibiblio as external
repository
 server and activate the profile whenever I have to use components with
 dependencies that are not in our internal repository.
 
 The problem I have is that getting the internal/central repository
 updated with the new dependencies is rather a tedious and time
intensive
 task, especially if for example a maven plug-in is added that comes
with
 lots of transient dependencies.
 
 My question is:  Ho do other teams deal with that problem?  Are there
 tools that list differences between two different repositories (local
 and internal)?
 
 I used Maven Archiva as proxy repository but that does not give us the
 control over what gets added to the repository.
 
 Thanks in advance for any hint and suggestion.
 
 Andreas
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [M2] Managing Repositories

2006-09-17 Thread Andreas Guther

Hi Barrie,

Thank you for the interesting link.  I am also not very convinced if a
locked repository is really necessary and then if it is really the
solution for our problem.

One problem is that Maven seems to pull in more files than sometimes
expected or really necessary.  Maven analyzes all transient dependencies
and adds all defined dependencies to path or lib folder for example of a
war file.  This sometimes creates unexpected conflicts, especially with
XML parsers.  

And then that we sometimes end up with two versions of the same
dependency.  Application A needs components C1 and C2.  C1 defines
dependency on D version 1.1 and C2 defines dependency on D version 1.0.
What I see is that we find both in our war lib folder.

Right now I am not sure how to deal with those problems.  The idea of
locking the repository obviously does not really solve the problem.  The
convenience of Maven to resolve and download all transient dependencies
seems to be paid with sudden conflicts that were not apparent in the
first place without Maven.

Andreas


-Original Message-
From: Barrie Treloar [mailto:[EMAIL PROTECTED] 
Sent: Sunday, September 17, 2006 6:02 PM
To: Maven Users List
Subject: Re: [M2] Managing Repositories

On 9/17/06, Andreas Guther [EMAIL PROTECTED] wrote:

 Hi,

 I am struggling with the question on how to maintain a controlled
 internal repository with Maven 2.

 We want to have full control over the downloaded dependencies and
 configured Maven to use as central repository our internal repository
 server.  With this configuration no external repository is used.

I will link to my response to a similar query.
http://www.nabble.com/forum/ViewPost.jtp?post=6087922framed=y

Essentially I question the need for a locked down repository.
About the only time I can see a need for this is because of security
restrictions on network connections (i.e. defence with a secure and
insecure network, as the secure network can not connect to ibiblio).
Any other reason is just making busy work and adds no value.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [M2] Managing Repositories

2006-09-17 Thread Lakshman Srilakshmanan
Hi barrie,

After reading your post, I beg to differ on the need to lock down the
repository.

Locking down your repository has nothing to do with _not_ trusting your
developers. The reason you lock down your repository is to avoid any
unintentional library conflicts that may arise when you have multiple
projects using the same repository. 

A single developer will not be preview to all the dependency matrix
(especially the new graduates) and avoids any accidental library
conflicts that may arise due to a new core library being installed.

Thanks
Lakshman


 -Original Message-
 From: Barrie Treloar [mailto:[EMAIL PROTECTED]
 Sent: Monday, 18 September 2006 11:02 AM
 To: Maven Users List
 Subject: Re: [M2] Managing Repositories
 
 On 9/17/06, Andreas Guther [EMAIL PROTECTED] wrote:
 
  Hi,
 
  I am struggling with the question on how to maintain a controlled
  internal repository with Maven 2.
 
  We want to have full control over the downloaded dependencies and
  configured Maven to use as central repository our internal
repository
  server.  With this configuration no external repository is used.
 
 I will link to my response to a similar query.
 http://www.nabble.com/forum/ViewPost.jtp?post=6087922framed=y
 
 Essentially I question the need for a locked down repository.
 About the only time I can see a need for this is because of security
 restrictions on network connections (i.e. defence with a secure and
 insecure network, as the secure network can not connect to ibiblio).
 Any other reason is just making busy work and adds no value.
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [M2] Managing Repositories

2006-09-17 Thread Barrie Treloar

On 9/18/06, Andreas Guther [EMAIL PROTECTED] wrote:

And then that we sometimes end up with two versions of the same
dependency.  Application A needs components C1 and C2.  C1 defines
dependency on D version 1.1 and C2 defines dependency on D version 1.0.
What I see is that we find both in our war lib folder.

Right now I am not sure how to deal with those problems.  The idea of
locking the repository obviously does not really solve the problem.  The
convenience of Maven to resolve and download all transient dependencies
seems to be paid with sudden conflicts that were not apparent in the
first place without Maven.


This will also answer Lakshman Srilakshmanan's reply too.

You had to deal with these version conflicts before, but you had to do
so manually.
At least I did when using Ant.

With Maven the dependencies are explicitly managed by the pom so it
takes the guesswork out of what is really needed.  Admittedly there
are some projects out there that need cleaning up and marking some of
their dependencies optional so that you don't get the kitchen sink as
well.

However the two ways I resolve these problems are
1) your parent pom defines all version information and your modules do not.
2) override the dependency values (if your are depending upon
something other than a module) and exclude things.

The root cause of your problem is that Components C1 and C2 need to
ensure that they are using the same versions, which is the job of your
Configurations Controller to check and enforce.  By locking the
repository down you just add a layer of administration that slows
things down when the component really does need a different version.

If the versions are incompatible then that means you need to
communicate more to ensure people are using sanctioned versions and
one component needs to be modified (either upgraded or downgraded in
library versions).

I find that you can get away with not explicitly sanctioning
versions for quite a lot of projects.  For the small number of cases
where version conflicts arise then listing the sanctioned versions
on your internal wiki is quicker, cheaper and more accessible than
locking the repository.  If all this fails, then sit down with the
projects and communicate how dependencies work, which is still much
cheaper than trying to lock down the repository.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]