Hi Eric,

I was wondering why your project POM's packaging type is "POM". If I understand 
correctly, with "POM" packaging type you'd only get 3 default goals bound to 
their phases (I read it here: 
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Built-in_Lifecycle_Bindings).

Thanks,
Amir

-----Original Message-----
From: Eric Kolotyluk [mailto:[email protected]]
Sent: March-14-12 2:22 PM
To: [email protected]
Subject: Re: Which is the BEST Approach to define Global POM.XML

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 (c) 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