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 <[email protected]> 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>[email protected]</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>[email protected]</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: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to