Question

Quelles sont les causes possibles de l'avertissement Maven suivant:

Overriding profile: 'null' (source: pom) with new instance from source: pom

J'ai essayé de commenter mon ensemble du profil par défaut comme l'avertissement mentionne « profil », mais cela n'a pas aidé. J'ai aussi essayé de commenter mes options de rapport et l'avertissement apparaît toujours.

J'ai couru maven avec le drapeau de -X et l'avertissement apparaît immédiatement après ma dépendance à hamcrest est amené, mais commentant dehors ne supprime pas l'avertissement.

EDIT: informations supplémentaires par demande:

Sortie de mvn help:active-profiles:

Active Profiles for Project 'com.sophware.XXX:main:jar:0.0.1-SNAPSHOT':

The following profiles are active:

 - default (source: pom)

Sortie de mvn help:all-profiles:

[INFO] Listing Profiles for Project: com.sophware.XXX:main:jar:0.0.1-SNAPSHOT
  Profile Id: default (Active: true , Source: pom)

default est en effet l'identifiant du profil que je l'utilise dans mon pom. À ce stade, je n'ai qu'un seul profil, bien que je pense à ajouter à l'avenir.

Résolution:

Pierre avait raison sur le problème. Le problème provient de ne pas avoir un élément de id dans un profil de maven. Dans mon cas, un fichier pom a été tiré à cause de ma dépendance à miglayout.

En regardant par la pom de charge, je trouve que miglayout, en effet, ne pas utiliser des années id dans ses profils:

   <profile>
        <activation>
            <os>
                <family>windows</family>
                <arch>x86</arch>
            </os>
        </activation>
        <dependencies>
            <dependency>
                <groupId>org.eclipse.swt.win32.win32</groupId>
                <artifactId>x86</artifactId>
                <version>3.3.0-v3346</version>
                <optional>true</optional>
            </dependency>
        </dependencies>
    </profile>

Il y a un certain nombre d'autres profils de disparus id ainsi que bien, chacun de provoquer l'avertissement d'être présent.

Était-ce utile?

La solution

Il est facile à reproduire dans Maven 2.2.9. La seule cause de ceci est maven deux profils sont définis sans un élément d'identification de profil de la même pom.xml, ainsi les ids sont traitées nulle. Je ne sais pas ce que le cas d'utilisation d'un tel profil est, mais Maven 2.2.9 silencieusement permet un tel profil existe, à moins que vous essayez de l'ignorer bien sûr -. Vous obtenez l'avertissement mentionné

Voici un simple pom qui reproduit l'erreur. Notez l'élément manquant <id> pour chaque profil.

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.maven.its.mngxxxx</groupId>
  <artifactId>parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>parent</name>
  <profiles>
   <profile>
      <activation>
        <property><name>foo</name></property>
      </activation>
    </profile>
    <profile>
      <activation>
        <property><name>foo</name></property>
      </activation>
    </profile>
  </profiles>
</project>

Il suffit de taper mvn -X validate -Dfoo=true et vous devriez voir en haut de la sortie, le message d'avertissement. Ceci est dû à la seconde définition de profil en essayant de passer outre le premier.

Le code correspondant dans Maven 2 qui émet cet avertissement est en DefaultProfileManager.java ligne 123.


Dans Maven 3, cela a changé. En utilisant la dernière Maven 3.0-alpha-6 que vous obtenez.

[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] profiles.profile.id must be unique but found duplicate profile with id default @ org.apache.maven.its.mngxxxx:parent:1.0-SNAPSHOT, /Users/plynch/dev/apache/maven/core-integration-testing/mytests/mng-xxxx-IT/src/test/resources/mng-xxxx/pom.xml

 at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:285)
 at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:402)
 at org.apache.maven.DefaultMaven.getProjectsForMavenReactor(DefaultMaven.java:351)
 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:171)
 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104)
 at org.apache.maven.cli.MavenCli.execute(MavenCli.java:422)
 at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157)
 at org.apache.maven.cli.MavenCli.main(MavenCli.java:122)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:592)
 at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
 at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
 at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
 at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[ERROR]   The project org.apache.maven.its.mngxxxx:parent:1.0-SNAPSHOT (/Users/plynch/dev/apache/maven/core-integration-testing/mytests/mng-xxxx-IT/src/test/resources/mng-xxxx/pom.xml) has 1 error
[ERROR]     profiles.profile.id must be unique but found duplicate profile with id default
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

Notez également que la <id> manquante Maven 3 à appliquer un identifiant de profil « par défaut ».


Enfin dans une construction à plusieurs modules, si un parent pom définir un profil avec le même identifiant que l'un chez l'enfant, il n'y a pas d'avertissement ou une autre indication émise par Maven.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top