[eclipse] Spring Data Maven 빌드에서 “라이프 사이클 구성에 포함되지 않은 플러그인 실행”을 해결하는 방법

Spring Data 및 Neo4j 작업하려고합니다 . 기본 사이트에 연결된 이 가이드 를 따르려고 시작했습니다 . 특히 “Hello, World!” 에서 pom.xml을 기반으로했습니다 . 예제 파일 . 다음은 문제를 일으키는 플러그인에 대한 pom.xml의 코드입니다.

<plugin>
<!-- Required to resolve aspectj-enhanced class features -->
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.0</version>
    <configuration>
        <outxml>true</outxml>
        <aspectLibraries>
            <aspectLibrary>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </aspectLibrary>
            <aspectLibrary>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-neo4j</artifactId>
            </aspectLibrary>
        </aspectLibraries>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
    <executions>
        <!-- ERROR HERE IN ECLIPSE SEE BELOW FOR FULL MESSAGE -->
        <execution>
            <goals>
                <goal>compile</goal>
                <goal>test-compile</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${aspectj.version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${aspectj.version}</version>
        </dependency>
    </dependencies>
</plugin>

내가보고있는 오류는 다음과 같습니다.

 Multiple annotations found at this line:
    - Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (execution: default, phase: process-classes)
    - Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:test-compile (execution: default, phase: process-classes)

Eclipse 3.6.2 및 m2e 0.13을 실행 중입니다. 저는 Maven 전문가가 아니므로 가능한 경우 답변에 매우 설명해주십시오.

또한 이 업데이트 사이트 를 통해 m2e 1.0.0 을 시도했지만 여전히 동일한 오류가 발생합니다.



답변

비슷한 문제의 경우 수정에 Andrew의 제안을 사용하는 대신 문제 의 pom.xml에 <pluginManagement> 태그를 도입 한 후에 간단하게 작동했습니다 . 해당 오류는 <pluginManagement> 태그가 없기 때문에 발생합니다. 따라서 Eclipse에서 예외를 피하려면 다음과 같이 모든 플러그인 태그를 <pluginManagement> 태그 안에 넣어야합니다 .

<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>

이 구조가 설정되면 오류가 사라집니다.


답변

엉망이야 어디서 이것을 찾았는지 기억이 나지 않지만 M2Eclipse를 행복하게하려면 다음을 추가해야했습니다. 더 슬픈 것은이 태그가 필요한 이유를 정확히 이해하기가 쉽지 않다는 것입니다.

<build>
      ... various plugins ...

      <pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse
                m2e settings only. It has no influence on the Maven build itself. -->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.codehaus.mojo</groupId>
                                    <artifactId>aspectj-maven-plugin</artifactId>
                                    <versionRange>[1.0,)</versionRange>
                                    <goals>
                                        <goal>test-compile</goal>
                                        <goal>compile</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

M2Eclipse 플러그인에는 스프링 데이터에서 작동하지 않는 다른 많은 문제가있었습니다. 결국 Apache Eclipse 플러그인 을 선호하여 M2Eclipse를 비활성화 했습니다 .


답변

Eclipse Luna 4.4.0에서는 환경 설정에서이 오류를 무시하도록 선택할 수 있습니다.

> 환경 설정 > Maven > 오류 / 경고 > 수명주기 구성에 포함되지 않는 플러그인 실행 . 무시 / 경고 / 오류를 선택 하십시오 를 .

또한이 오류에 대한 빠른 수정 (Ctrl + 1)에서 Eclipse 환경 설정의 Eclipse 빌드에서 목표를 무시 된 것으로 표시하는 옵션을 제공합니다 (실험적)

이것은 더 깔끔한 방법입니다. pom.xml 입니다.

다른 프로젝트에서도 같은 오류를 수정하려면 Maven > Update 프로젝트 를 수행해야합니다 .


STS (Spring-tool-suite)에서는 환경 설정에서이 오류를 무시하도록 선택할 수 있습니다.

창> 환경 설정> Maven> 오류 / 경고> 플러그인 실행은 수명주기 구성에 포함되지 않습니다. 원하는대로 무시 / 경고 / 오류를 선택하십시오. 그때. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Maven을 클릭하고 프로젝트를 업데이트하면 오류가 사라집니다.


답변

Eclipse m2e 문서 에서 제안 된 솔루션 :

  1. pom.xml 의 오류에 빠른 수정 을 사용 하고 선택하십시오 . 그러면 필요한 상용구 코드가 생성됩니다.Permanently mark goal run in pom.xml as ignored in Eclipse build

  2. 빌드 중에 Eclipse가 플러그인을 실행하도록 지시하려면 생성 된 구성에서 <ignore/>태그를 <execute/>태그로 바꾸십시오 .

    <action>
        <execute/>
    </action>

    또는 Eclipse에서 증분 빌드에서도 플러그인을 실행하도록 지시 할 수 있습니다.

    <action>
        <execute>
            <runOnIncremental>true</runOnIncremental>
        </execute >
    </action>

답변

https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html을 참조 하십시오 .

오랜 문제를 해결하기 위해 m2e 1.0에는 프로젝트 빌드 라이프 사이클의 “흥미로운”단계에 묶인 모든 Maven 플러그인으로 수행 할 작업에 대한 명시적인 지침이 필요합니다. 이 지시 사항을 m2e가 프로젝트 pom.xml 파일에서 Eclipse 작업 공간 프로젝트 구성 및 Eclipse 작업 공간 빌드 중 동작으로 정보를 맵핑하는 방법을 정의하므로 “프로젝트 빌드 라이프 사이클 맵핑”또는 간단히 “라이프 사이클 맵핑”이라고합니다.

프로젝트 빌드 라이프 사이클 맵핑 구성은 Eclipse 플러그인에 의해 제공되는 프로젝트 pom.xml에 지정 될 수 있으며 m2e와 함께 제공되는 일반적으로 사용되는 Maven 플러그인에 대한 기본 구성도 있습니다. 이를 “라이프 사이클 매핑 메타 데이터 소스”라고합니다. m2e는 매핑 메타 데이터 소스에서 수명주기 매핑이없는 모든 플러그인 실행에 대해 아래와 같은 오류 마커를 생성합니다.

Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
   (execution: generate-sources-input, phase: generate-sources)

m2e는 플러그인 groupId, artifactId, 버전 범위 및 목표의 조합을 사용하여 플러그인 실행을 조치에 일치시킵니다. 플러그인 실행과 관련하여 m2e가 지시 할 수있는 세 가지 기본 동작이 있습니다 . 프로젝트 구성 자를 무시 , 실행 및 위임 합니다 .


답변

m2e 0.13 은 m2e 기능을 확장하기 위해 m2e 커넥터m2e 마켓 플레이스 를 소개합니다. 그것은 오래된 m2e-extras 저장소와 같습니다.

환경 설정> 환경 설정> Maven> Discovery> 카탈로그 열기 에서 m2e 마켓 플레이스에 액세스 할 수 있습니다 . WTP 통합을 설치 하면 대부분의 플러그인 문제가 해결되었습니다.


답변

플러그인 실행에 대한 Maven 환경 설정을 오류에서 무시로 변경하십시오.