Return-Path: X-Original-To: apmail-maven-issues-archive@minotaur.apache.org Delivered-To: apmail-maven-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2DC2F10F97 for ; Thu, 5 Dec 2013 02:18:12 +0000 (UTC) Received: (qmail 71134 invoked by uid 500); 5 Dec 2013 02:18:12 -0000 Delivered-To: apmail-maven-issues-archive@maven.apache.org Received: (qmail 71084 invoked by uid 500); 5 Dec 2013 02:18:12 -0000 Mailing-List: contact issues-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list issues@maven.apache.org Received: (qmail 71076 invoked by uid 99); 5 Dec 2013 02:18:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Dec 2013 02:18:12 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [199.193.192.100] (HELO codehaus01.managed.contegix.com) (199.193.192.100) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Dec 2013 02:18:06 +0000 Received: from codehaus01 (localhost.localdomain [127.0.0.1]) by codehaus01.managed.contegix.com (Postfix) with ESMTP id 0304DB1094 for ; Wed, 4 Dec 2013 20:17:45 -0600 (CST) Date: Wed, 4 Dec 2013 20:17:44 -0600 (CST) From: "Jack Jia (JIRA)" To: issues@maven.apache.org Message-ID: In-Reply-To: References: Subject: [jira] (MDEPLOY-173) Enhance the Maven Deploy Plugin to support Flat POM MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 22cf62d5d84cf5bea94eb3b65e0ebd09 X-Virus-Checked: Checked by ClamAV on apache.org [ https://jira.codehaus.org/browse/MDEPLOY-173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jack Jia updated MDEPLOY-173: ----------------------------- Description: *Problem* The pom.xml has dual purpose. Building and distributing a jar Used by another project for dependency management. For #1 build and distribution, pom.xml makes good sense with many sections and hierarchies. In this case the main objective is dealing with sources and various aspects of build. For #2, lets say project B needs the jar produced by project A ( #1), the only things B needs from A are, jar files dependencies of this jar file For #2 use-case, none of the sections or hierarchies of pom.xml make sense, except for .sections and GAV. Unfortunately maven simply copies the same pom.xml used for build to the repository for distribution. This problem gets complicated when there are pom hierarchies and sections In such cases, to resolve the dependencies of an artifact, maven needs to use more than one pom.xml. This results in complex release and patch process and potential build time issues. *Solution* Enhance the maven deploy plugin to deploy a "flattened" pom that contains only GAV and section. The section contains, properly resolved direct dependencies of the artifact, which are the same of "pom hierarchy" direct dependencies. "flattened" pom means it cannot have any parent or any other sections that are not necessary while deploying the artifact. Note that we may have to add removeMetadata method to *Acceptance Criteria* 1. "mvn deploy" could deploy "flatten" pom onto maven repo and its "flatten" pom's dependencies version should be same to versions of "pom hierachy". 2. "flatten" pom only contains GAV and section. 3. "flatten" pom only contains original direct dependencies, not including transitive dependencies. 4. "flatten" pom won't inherit from any parent pom. was: *Problem* The pom.xml has dual purpose. Building and distributing a jar Used by another project for dependency management. For #1 build and distribution, pom.xml makes good sense with many sections and hierarchies. In this case the main objective is dealing with sources and various aspects of build. For #2, lets say project B needs the jar produced by project A ( #1), the only things B needs from A are, jar files dependencies of this jar file For #2 use-case, none of the sections or hierarchies of pom.xml make sense, except for .sections and GAV. Unfortunately maven simply copies the same pom.xml used for build to the repository for distribution. This problem gets complicated when there are pom hierarchies and sections In such cases, to resolve the dependencies of an artifact, maven needs to use more than one pom.xml. This results in complex release and patch process and potential build time issues. *Solution* Enhance the maven deploy plugin to deploy a "flattened" pom that contains only GAV and section. The section contains, properly resolved direct dependencies of the artifact, which are the same of "pom hierarchy" direct dependencies. "flattened" pom means it cannot have any parent or any other sections that are not necessary while deploying the artifact. *Acceptance Criteria* 1. "mvn deploy" could deploy "flatten" pom onto maven repo and its "flatten" pom's dependencies version should be same to versions of "pom hierachy". 2. "flatten" pom only contains GAV and section. 3. "flatten" pom only contains original direct dependencies, not including transitive dependencies. 4. "flatten" pom won't inherit from any parent pom. > Enhance the Maven Deploy Plugin to support Flat POM > --------------------------------------------------- > > Key: MDEPLOY-173 > URL: https://jira.codehaus.org/browse/MDEPLOY-173 > Project: Maven Deploy Plugin > Issue Type: New Feature > Components: deploy:deploy > Reporter: Jack Jia > > *Problem* > The pom.xml has dual purpose. > Building and distributing a jar > Used by another project for dependency management. > For #1 build and distribution, pom.xml makes good sense with many sections and hierarchies. In this case the main objective is dealing with sources and various aspects of build. > For #2, lets say project B needs the jar produced by project A ( #1), the only things B needs from A are, > jar files > dependencies of this jar file > For #2 use-case, none of the sections or hierarchies of pom.xml make sense, except for .sections and GAV. > Unfortunately maven simply copies the same pom.xml used for build to the repository for distribution. > This problem gets complicated when there are pom hierarchies and sections > In such cases, to resolve the dependencies of an artifact, maven needs to use more than one pom.xml. This results in complex release and patch process and potential build time issues. > *Solution* > Enhance the maven deploy plugin to deploy a "flattened" pom that contains only GAV and section. > The section contains, properly resolved direct dependencies of the artifact, which are the same of "pom hierarchy" direct dependencies. > "flattened" pom means it cannot have any parent or any other sections that are not necessary while deploying the artifact. > Note that we may have to add removeMetadata method to > *Acceptance Criteria* > 1. "mvn deploy" could deploy "flatten" pom onto maven repo and its "flatten" pom's dependencies version should be same to versions of "pom hierachy". > 2. "flatten" pom only contains GAV and section. > 3. "flatten" pom only contains original direct dependencies, not including transitive dependencies. > 4. "flatten" pom won't inherit from any parent pom. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira