maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Connolly <stephen.alan.conno...@gmail.com>
Subject Re: Which is the BEST Approach to define Global POM.XML
Date Thu, 15 Mar 2012 12:22:45 GMT
On 15 March 2012 12:11, Joao Silva <joao.silva@vilt-group.com> wrote:
> Hi Anders
>
> Thanks, but I already mentioned that blog post in my email.
> Do you have something to add to that post?
> Because in my opinion, that post does not offer clear cut conclusions
> regarding the inclusion of repositories in pom.xml files:
>>
>>
>> /Should I put the urls to my repositories in my poms or in my settings?/
>>
>> The short answer is: /settings/.
>>
>> The long answer is: /it depends/.
>>
> For the enterprise scenarios, it may be reasonable to put them in pom.xml
> files...

Nope....

For enterprise scenarios, you use

<mirrorOf>*</mirrorOf>

so that *everything* is pulled from your enterprise repository
manager. Otherwise you are putting your enterprise at risk of a
failure of a 3rd party repository... e.g. what happened when JBoss
shut down their old repositories, what happened when those crazy fools
hosting their own maven repos on google-code svn repos deleted their
projects...

You want *everything* in your enterprise repository manager so that
you have complete control over your destiny

-Stephen

>
> Thanks and best regards
> Joao Silva
>
>
>
> On 3/15/2012 11:45 AM, Anders Hammar wrote:
>>
>>
>> http://www.sonatype.com/people/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/
>>
>> /Anders
>>
>> On Thu, Mar 15, 2012 at 11:51, Joao Silva<joao.silva@vilt-group.com>
>>  wrote:
>>>
>>> Hi Anders
>>>
>>> Can you provide some arguments to this statement?
>>> We currently recommend all our projects tech leads to add to their top
>>> level
>>> project pom.xml the repositories they use (each individual project tree
>>> usually has 3 repositories: releases, snapshots and 3rdparty).
>>> Since the projects are worked internally only, this eases new developers
>>> and
>>> developer rotation in projects.
>>> Our recommendation derives mainly from this blog post from the Sonatype
>>> blog:
>>>
>>> http://www.sonatype.com/people/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/
>>> If there are aspects of this approach that we are not aware of, it would
>>> be
>>> great to see them discussed.
>>>
>>> Thanks for your time!
>>> Best regards
>>> Joao Silva
>>>
>>> On 3/15/2012 9:09 AM, Anders Hammar wrote:
>>>>
>>>> You should NOT declare repositories (or plugin repositories) in a
>>>> corporate pom. That should be handled in settings.xml.
>>>>
>>>> /Anders
>>>>
>>>> On Wed, Mar 14, 2012 at 22:22, Eric Kolotyluk<eric.kolotyluk@gmail.com>
>>>>  wrote:
>>>>>
>>>>> What I do is have a top-level POM like (see below), and then I have my
>>>>> top
>>>>> level project POMs reference that (see further below). This may not be
>>>>> the
>>>>> best example, as I am still in the process of building the
>>>>> infrastructure,
>>>>> but
>>>>>
>>>>> 1. I put the Parent POM in its own place in source control and I
>>>>>   manually deploy it with Maven when I make changes.
>>>>> 2. You need to do this before creating any Project POMs that reference
>>>>>   it because they should reference it via Maven and not the file
>>>>>   system - if you work in a large company you will soon discover why.
>>>>> 3. There is of course a bootstrapping issue because now the project
>>>>>   POMs need to know how to find your Repository Manager, which is why
>>>>>   I include that information in the top level (Corporate) POM so
>>>>>   people can use it as a reference.
>>>>> 4. As you may gather I am using Sonatype's Nexus as a Repository
>>>>> Manager.
>>>>> 5. We are still developing our corporate repository infrastructure so
>>>>>   the content of the Corporate POM will evolve over time as our
>>>>>   corporate governance and policies are better codified.
>>>>>
>>>>> Does that help?
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <project xmlns="http://maven.apache.org/POM/4.0.0"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>>>>> http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>>>> <!--
>>>>>       Copyright Š My Company 2012
>>>>>
>>>>>       Proprietary&    Confidential
>>>>>
>>>>>       This is the top level POM for My Company Maven projects. It
>>>>> contains
>>>>> rules and standards common to all projects.
>>>>>
>>>>>       Changes:
>>>>>
>>>>>       2011-09-23 0.0.1-SNAPSHOT Eric Kolotyluk
>>>>>         Created initial version for check-in into source control.
>>>>>
>>>>>       2012-02-27 0.0.1-SNAPSHOT Eric Kolotyluk
>>>>>         Reconfigured for Nexus 2.0 on sonatype.
>>>>>   -->
>>>>> <modelVersion>4.0.0</modelVersion>
>>>>> <groupId>com</groupId>
>>>>> <artifactId>my-company</artifactId>
>>>>> <version>0.0.1-SNAPSHOT</version>
>>>>> <packaging>pom</packaging>
>>>>> <name>My Company Corporate POM</name>
>>>>> <description>Corporate Project Object Module for standard conventions
>>>>> and
>>>>> rules.</description>
>>>>> <developers>
>>>>> <developer>
>>>>> <id>10069959</id>
>>>>> <name>Eric Kolotyluk</name>
>>>>> <email>eric.kolotyluk@gmail.com</email>
>>>>> <organization>My Company Ltd.</organization>
>>>>> <timezone>Vancouver PDT</timezone>
>>>>> <roles>
>>>>> <role>Software Architect</role>
>>>>> <role>Software Developer</role>
>>>>> </roles>
>>>>> </developer>
>>>>> </developers>
>>>>> <organization>
>>>>> <name>My Company</name>
>>>>> </organization>
>>>>> <distributionManagement>
>>>>>
>>>>>
>>>>> <downloadUrl>http://sonatype:8081/nexus/content/groups/public</downloadUrl>
>>>>> <repository>
>>>>> <uniqueVersion>false</uniqueVersion>
>>>>> <id>nexus</id>
>>>>> <name>My Company Release Repository</name>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/releases</url>
>>>>> <layout>default</layout>
>>>>> </repository>
>>>>> <snapshotRepository>
>>>>> <id>nexus</id>
>>>>> <name>My Company Snapshot Repository</name>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/snapshots</url>
>>>>> <layout>default</layout>
>>>>> </snapshotRepository>
>>>>> </distributionManagement>
>>>>> <build>
>>>>> </build>
>>>>> <repositories>
>>>>> <repository>
>>>>> <releases>
>>>>> <updatePolicy>always</updatePolicy>
>>>>> </releases>
>>>>> <id>info.collide.mvn</id>
>>>>> <name>Collide</name>
>>>>>
>>>>>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/info.collide.mvn/</url>
>>>>> </repository>
>>>>> <repository>
>>>>> <id>thirdparty</id>
>>>>> <name>3rd party</name>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/thirdparty/</url>
>>>>> </repository>
>>>>> </repositories>
>>>>> <dependencies>
>>>>> </dependencies>
>>>>> <reporting>
>>>>> <plugins>
>>>>> </plugins>
>>>>> </reporting>
>>>>> <dependencyManagement>
>>>>> </dependencyManagement>
>>>>> <properties>
>>>>> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>>> </properties>
>>>>> </project>
>>>>>
>>>>> - - - - - - -
>>>>>
>>>>> <project xmlns="http://maven.apache.org/POM/4.0.0"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>>>>> http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>>>> <modelVersion>4.0.0</modelVersion>
>>>>> <parent>
>>>>> <groupId>com</groupId>
>>>>> <artifactId>my-company</artifactId>
>>>>> <version>0.0.1-SNAPSHOT</version>
>>>>> </parent>
>>>>> <groupId>com.my-company</groupId>
>>>>> <artifactId>intersystem</artifactId>
>>>>> <version>0.0.2-SNAPSHOT</version>
>>>>> <packaging>pom</packaging>
>>>>> <name>My Company Intersystem</name>
>>>>> <description>Service layer for collaborative, distributed applications
>>>>> and
>>>>> services</description>
>>>>> <licenses>
>>>>> <license>
>>>>> <name>My Company Intersystem</name>
>>>>>
>>>>>
>>>>> <url>https://collaborate.my-company.com/sites/SoftwareStandardsAndGuidelines/Intersystem/default.aspx</url>
>>>>> <distribution>repo</distribution>
>>>>> </license>
>>>>> </licenses>
>>>>> <developers>
>>>>> <developer>
>>>>> <id>10069959</id>
>>>>> <name>Eric Kolotyluk</name>
>>>>> <email>eric.kolotyluk@gmail.com</email>
>>>>> <organization>My Company</organization>
>>>>> <timezone>Vancouver PDT</timezone>
>>>>> <roles>
>>>>> <role>Software Architect</role>
>>>>> <role>Software Developer</role>
>>>>> <role>Intersystem Architect</role>
>>>>> </roles>
>>>>> </developer>
>>>>> </developers>
>>>>> <organization>
>>>>> <name>My Company</name>
>>>>> </organization>
>>>>> <distributionManagement>
>>>>>
>>>>>
>>>>> <downloadUrl>http://sonatype:8081/nexus/content/groups/public</downloadUrl>
>>>>> <repository>
>>>>> <uniqueVersion>false</uniqueVersion>
>>>>> <id>nexus</id>
>>>>> <name>My Company Release Repository</name>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/releases</url>
>>>>> <layout>default</layout>
>>>>> </repository>
>>>>> <snapshotRepository>
>>>>> <id>nexus</id>
>>>>> <name>My Company Snapshot Repository</name>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/snapshots</url>
>>>>> <layout>default</layout>
>>>>> </snapshotRepository>
>>>>> </distributionManagement>
>>>>> <build>
>>>>> </build>
>>>>> <repositories>
>>>>> <repository>
>>>>> <releases>
>>>>> <updatePolicy>always</updatePolicy>
>>>>> </releases>
>>>>> <id>info.collide.mvn</id>
>>>>> <name>Collide</name>
>>>>>
>>>>>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/info.collide.mvn/</url>
>>>>> </repository>
>>>>> <repository>
>>>>> <id>thirdparty</id>
>>>>> <name>3rd party</name>
>>>>> <url>http://sonatype:8081/nexus/content/repositories/thirdparty/</url>
>>>>> </repository>
>>>>> </repositories>
>>>>> <dependencies>
>>>>> </dependencies>
>>>>> <reporting>
>>>>> <plugins>
>>>>> </plugins>
>>>>> </reporting>
>>>>> <dependencyManagement>
>>>>> </dependencyManagement>
>>>>> <properties>
>>>>> <net.sf.jni4net.version>0.8.6.0</net.sf.jni4net.version>
>>>>> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>>> </properties>
>>>>> <modules>
>>>>> <module>platform.Java</module>
>>>>> <module>platform.NET</module>
>>>>> </modules>
>>>>> </project>
>>>>>
>>>>>
>>>>> On 2012-03-14 1:29 PM, Daivish Shah wrote:
>>>>>>
>>>>>> Hi Maven Team,
>>>>>>
>>>>>> I am trying to find out what is the best way to define company
>>>>>> specific
>>>>>> GLOBAL POM.XML. Which each team can inherit it in EACH Projects.
>>>>>>
>>>>>> Can some one provide me guideline on that ? Is that going to be
>>>>>> profile
>>>>>> or
>>>>>> just simple POM.XML ? And how to inherit that. Please provide me
>>>>>> guideline
>>>>>> to implement it. As this is very critical before we implement all
>>>>>> projects
>>>>>> with MAVEN.
>>>>>>
>>>>>> Thanks,
>>>>>> Daivish.
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>
> --
> *João Silva
> * *
> VILT Group
> * *_http://www.vilt-group.com
> _
> Rua Ivone Silva, 6 - 7º Esq
> 1050-124 Lisboa - Portugal
>
> Mobile  +351 926 531 097
> Phone   +351 210 34 33 00
> Fax       +351 210 34 33 99
> Email _joao.silva@vilt-group.com <mailto:joao.silva@vilt-group.com>_*

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


Mime
View raw message