문제

다음 Maven 경고의 가능한 원인은 무엇입니까?

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

경고가 "프로필"을 언급하면서 전체 기본 프로필을 언급하려고 시도했지만 도움이되지 않았습니다. 또한보고 옵션을 언급하려고 시도했지만 경고가 여전히 나타납니다.

나는 Maven과 함께 달렸다 -X 깃발과 경고는 내 Hamcrest 의존성이 들어 오자마자 나타나지만,이를 언급한다고해서 경고를 제거하지는 않습니다.

편집하다: 요청 당 추가 정보 :

출력 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)

출력 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 실제로 내가 POM에서 사용하는 프로필의 ID입니다. 이 시점에서 나는 앞으로 더 많은 것을 추가 할 것으로 기대하지만 하나의 프로필 만 가지고 있습니다.

해결:

베드로는 문제에 대해 옳았습니다. 문제는 id Maven 프로파일 내의 요소. 제 경우에는 Miglayout 종속성으로 인해 POM 파일이 가져 왔습니다.

부양 가족을 살펴보면 Miglayout이 실제로 사용하지 않는다는 것을 알았습니다. id프로파일에 :

   <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>

다른 많은 프로파일이 누락되었습니다 id또한, 또한 각각 경고가 존재하게됩니다.

도움이 되었습니까?

해결책

이것은 Maven 2.2.9에서 쉽게 재현 할 수 있습니다. 이것의 유일한 원인은 두 개의 maven 프로파일이 동일한 pom.xml에서 프로파일 ID 요소없이 정의되므로 ID는 null로 처리됩니다. 나는 그러한 프로필의 유스 케이스가 무엇인지 모르지만, Maven 2.2.9는 물론 그것을 무시하려고하지 않는 한, 그러한 프로파일을 조용히 허용합니다 - 당신은 언급 된 경고를 얻습니다.

여기 오류를 재현 할 간단한 POM이 있습니다. 누락 된 것을 주목하십시오 <id> 각 프로필의 요소.

<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>

간단히 입력하십시오 mvn -X validate -Dfoo=true 그리고 출력 상단 근처에 경고 메시지를 볼 수 있습니다. 이것은 첫 번째를 무시하려는 두 번째 프로파일 정의에 의해 발생합니다.

이 경고를 방출하는 Maven 2의 관련 코드는 DefaultProfileManager.java 라인 123.


Maven 3에서는 이것이 바뀌 었습니다. 최신 Maven 3.0-Alpha-6을 사용하여 얻을 수 있습니다.

[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

누락 된 것도 주목하십시오 <id> Maven 3이 '기본값'프로필 ID를 적용하게됩니다.


마지막으로 다중 모듈 빌드에서 부모 POM이 자식과 동일한 ID의 프로파일을 정의하는 경우 Maven에서 방출 된 경고 나 기타 표시가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top