maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tibor Varga (JIRA)" <j...@codehaus.org>
Subject [jira] Commented: (MNG-4148) Apply profiles from settings.xml to POMs built from the repository
Date Thu, 09 Dec 2010 06:02:58 GMT

    [ http://jira.codehaus.org/browse/MNG-4148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=246965#action_246965
] 

Tibor Varga commented on MNG-4148:
----------------------------------

I read through the discussion Bratt [linked to|http://www.mail-archive.com/dev@maven.apache.org/msg82166.html]
and tried to apply the concepts expressed there to the case I reported in MNG-4930, where
the value to the given property was only supplied by {{settings.xml}}.

Then I read that discussion again, as well as the original bug report here, and found that
the overriding concern has been (excuse the pun) that allowing properties from {{settings.xml}}
or any source external to the POMs to _override_ properties defined in POMs may have serious,
and unintended, consequences.

Maven's current approach it to simply ignore any property coming from {{settings.xml}} even
if it would not override anything but supply the only value to a property.

In light of that, how about this: _do not allow properties coming from outside the POMs to
*override* properties defined in the POMs, only allow them to supply *original* values_?

Would that make sense?

It would certainly solve my case, which in real life, actually, had to do with the {{systemPath}}
of a {{system}} scope dependency that depended on a property defined in {{settings.xml}}.

> Apply profiles from settings.xml to POMs built from the repository
> ------------------------------------------------------------------
>
>                 Key: MNG-4148
>                 URL: http://jira.codehaus.org/browse/MNG-4148
>             Project: Maven 2 & 3
>          Issue Type: Improvement
>          Components: Artifacts and Repositories, POM, Profiles
>    Affects Versions: 2.1.0
>            Reporter: John Casey
>            Assignee: John Casey
>             Fix For: 2.2.2
>
>         Attachments: test-mng3553.zip
>
>
> When we declare a profile in the settings.xml, it will never be applied to POMs loaded
from the Maven repository. This means that overriding the central repository definition -
for instance - cannot be done without using mirror definitions, since transitive dependencies
(any dependency of a direct dependency) will skip the modified definition and use the original
from the super-POM instead.
> I'm attaching a testing setup that was originally reported for MNG-3553, which exhibits
this problem when dealing with scope == import. The instructions for using it are as follows:
> {noformat}
> I installed locally a nexus server (1.3.3 Open Source) and I'm using maven 2.1.0 (I reproduced
the issue with 2.0.10).
> In the releases repository of nexus you upload all artifacts given in the toUpload directory
:
>     * parent 1.0.0 pom
>     * dependencies 1.0.0 pom
>     * module 1.0.0 pom and jar
> You'll find in the root of the archive my settings. It defines to use nexus for the central
repository.
> You launch a build of the project and you'll have :
> [INFO] Scanning for projects...
> [INFO] ------------------------------------------------------------------------
> [INFO] Building Unnamed - org.apache.maven.it.mng3553:project:jar:1.0.0-SNAPSHOT
> [INFO]    task-segment: [install]
> [INFO] ------------------------------------------------------------------------
> [INFO] [resources:resources]
> [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e.
build is platform dependent!
> [INFO] skip non existing resourceDirectory E:\jtb\workspaces\tests\test-mng3553\project\src\main\resources
> Downloading: http://localhost:8081/nexus/content/groups/public//org/apache/maven/it/mng3553/module/1.0.0/module-1.0.0.pom
> 867b downloaded  (module-1.0.0.pom)
> Downloading: http://repo1.maven.org/maven2/org/apache/maven/it/mng3553/dependencies/1.0.0/dependencies-1.0.0.pom
> [WARNING] Unable to get resource 'org.apache.maven.it.mng3553:dependencies:pom:1.0.0'
> from repository central (http://repo1.maven.org/maven2): Authorization failed: Access
denied to:
>   http://repo1.maven.org/maven2/org/apache/maven/it/mng3553/dependencies/1.0.0/dependencies-1.0.0.pom
> [INFO] ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO] ------------------------------------------------------------------------
> [INFO] Failed to resolve artifact.
> GroupId: org.apache.maven.it.mng3553
> ArtifactId: dependencies
> Version: 1.0.0
> Reason: Unable to download the artifact from any repository
>   org.apache.maven.it.mng3553:dependencies:pom:1.0.0
> from the specified remote repositories:
>   central (http://repo1.maven.org/maven2)
> [INFO] ------------------------------------------------------------------------
> [INFO] For more information, run Maven with the -e switch
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 1 second
> [INFO] Finished at: Thu Apr 30 15:19:47 CEST 2009
> [INFO] Final Memory: 6M/254M
> [INFO] ------------------------------------------------------------------------
> You can see that the project downloads successfully the module-1.0.0 from nexus but
> it fails for depencencies which is an import. It tries to download it from the real central
repository
> and not from the one I defined in my settings.
> The behavior is inconsistent...
> {noformat}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message