source

Spring Data Maven Builds의 "플러그인 실행은 라이프 사이클 구성에 포함되지 않음" 문제 해결 방법

manycodes 2023. 2. 10. 22:07
반응형

Spring Data Maven Builds의 "플러그인 실행은 라이프 사이클 구성에 포함되지 않음" 문제 해결 방법

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을 실행하고 있습니다.저는 메이븐 전문가가 아니기 때문에 가능한 한 설명을 해 주시기 바랍니다.

업데이트 사이트를 통해 m2e 1.0.0을 시도해도 동일한 오류가 나타납니다.

비슷한 문제의 경우 Andrew의 수정 제안을 사용하는 대신 해당 pom.xml에 <plugin Management> 태그를 도입하면 간단하게 해결되었습니다.이 에러는,<plugin Management >태그가 없는 것이 원인인 것 같습니다.따라서 Eclipse의 예외를 피하기 위해서는 다음과 같이 모든 플러그인 태그를 <plugin Management> 태그 안에 넣기만 하면 됩니다.

<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에서는 기본 설정에서 이 오류를 무시하도록 선택할 수 있습니다.

[ Window ]> [ Preferences ]> [ Maven ]> [ Errors / Warnings ]> [ Plugin ]의 실행은 라이프 사이클 설정으로 커버되지 않습니다.원하는 대로 Ignore / Warning / Error를 선택합니다.

또한 이 오류에 대한 빠른 수정(Ctrl + 1)에서는 Eclipse 기본 설정(실험적)에서 목표를 무시한 것으로 표시할 수 있는 옵션을 제공합니다.

왜냐하면 이 방법은 당신의 데이터를 수정하지 않기 때문입니다.pom.xml.

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


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

[ Window ]> [ Preferences ]> [ Maven ]> [ Errors / Warnings ]> [ Plugin ]의 실행은 라이프 사이클 설정으로 커버되지 않습니다.[무시] / [경고] / [오류]를 선택합니다.그러면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트를 업데이트하면 오류가 사라집니다.

Eclipse m2e 문서에서 제안하는 솔루션:

  1. pom.xml 오류에 대한 빠른 수정을 사용하여Permanently mark goal run in pom.xml as ignored in Eclipse build - 필요한 보일러 코드입니다.

  2. 에 플러그인을 하려면 이클립스 - 이클립스 - 이클립스만 .<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 플러그인이 제공하는 프로젝트 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, 아티팩트Id, 버전 범위 및 목표를 조합하여 수행하는 작업과 플러그인 실행을 일치시킵니다.플러그인 실행에 대해 m2e를 지시할 수 있는 세 가지 기본 액션이 있습니다.무시, 실행 및 프로젝트 컨피규레이터 위임입니다.

m2e 0.13은 m2e 기능을 확장하기 위해 m2e 커넥터m2e Market Place를 도입했습니다.오래된 m2e-extra 저장소와 비슷합니다.

m2e 마켓플레이스는 [설정]> [매븐]> [검색]> [카탈로그 열기]에서 액세스 할 수 있습니다.WTP 통합 설치로 대부분의 플러그인 문제가 해결되었습니다.

오늘의 Eclipse Neon 릴리즈 트레인에서 사용할 수 있는 M2Eclipse(m2e) 버전 1.7.0은 라이프 사이클 매핑 메타데이터를 지정하기 위한 새로운 구문을 지원합니다.결과적으로 다음과 같은 보일러 플레이트(여기에서는 m2e에게 목표를 무시하도록 지시하고 있습니다):

<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>exec-maven-plugin</artifactId>
                <versionRange>[1.5.0,)</versionRange>
                <goals>
                  <goal>exec</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <ignore></ignore>
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

플러그인의 실행 노드에서 다음 행으로 대체할 수 있습니다.

<?m2e ignore?>

여기에 이미지 설명 입력

자세한 내용은 릴리스 노트를 참조하십시오.

플러그인 실행을 위한 Maven 기본 설정을 오류에서 무시로 변경합니다.

이전 답변의 부록으로, 프로젝트 POM에 이 보일러 플레이트를 추가할 수 없거나 추가할 수 없는 경우의 회피책이 있습니다.다음 위치에 있는 경우:

{Eclipse_folder}/plugins/org.eclipse.m2e.lifecyclemapping.defaults_{m2e_version}

파일에는 '보다 낫다'라는 파일이 있습니다.lifecycle-mapping-metadata.xml기타 응답 및 M2E 플러그인 실행에서 설명된 것과 동일한 변경을 수행할 수 있습니다.

이클립스 v3.7(Indigo)과 m2eclipse에서도 Maven 플러그인과 같은 문제가 있었습니다.플러그인 정의 내에서 실행 단계를 명시함으로써 오류를 쉽게 해결할 수 있습니다.그래서 내 폼은 이렇게 생겼어

<project>
    ...
    <build>
        ...
        <plugins>
            <plugin>

                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.0</version>

                <configuration>
                    <timestampFormat>yyyy-MM-dd_HH-mm-ss</timestampFormat>
                </configuration>

                <executions>
                    <execution>
                        *<phase>post-clean</phase>*
                        <goals>
                            <goal>create-timestamp</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        ...
  1. [도움말(Help)]> [새로운 소프트웨어 설치(Install New Software)]으로 이동합니다
  2. 소프트웨어 저장소 사용

    "설치 중 필요한 소프트웨어를 찾기 위해 모든 업데이트 사이트에 연락"이 선택되어 있는지 확인합니다.

  3. AJDT m2e 컨피규레이터 설치

출처: Spring Source Tool Suite 2.8.0용 Maven 통합 업그레이드 (Andrew Eisenberg)

ADJT가 설치되어 있지 않으면 자동으로 설치되지만 설치되어 있지 않으면 먼저 "Indigo update site"(이클립스 버전에 따라)에서 ADJT(Aspect J Development Tools)를 설치합니다.

자세한 내용은 AspectJ Development Tools 사이트를 참조하십시오.

workspace/rtc-ws/.metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml 을 만듭니다.lifecycle-mapping-metadata.xml 앤 합니다.

4. Eclipse 4.2에 pom.xml file " " " 。lifecycle-mapping-metadata.xml을 로로로 Windows -> Preferences -> Lifecycle mapping(이 파일을 변경할 때마다 워크스페이스 라이프 사이클 매핑 메타데이터 새로고침!을 누릅니다).는 하다를 으로 한 입니다.eclipse/plugins/org.eclipse.m2e.lifecyclemapping.defaults_1.2.0.20120903-1050.jar/lifecycle-mapping-metadata.xml

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
    <pluginExecutions>
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <goals>
                    <goal>create-timestamp</goal>
                </goals>
                <versionRange>[0.0,)</versionRange>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>

        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <goals>
                    <goal>list</goal>
                </goals>
                <versionRange>[0.0,)</versionRange>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>

        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>jrebel-maven-plugin</artifactId>
                <goals>
                    <goal>generate</goal>
                </goals>
                <versionRange>[0.0,)</versionRange>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>

        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <goals>
                    <goal>compile</goal>
                </goals>
                <versionRange>[0.0,)</versionRange>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>

        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <goals>
                    <goal>copy-dependencies</goal>
                    <goal>unpack</goal>
                </goals>
                <versionRange>[0.0,)</versionRange>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>

        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <versionRange>[1.7,)</versionRange>
                <goals>
                    <goal>run</goal>
                </goals>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>


        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <versionRange>[2.8,)</versionRange>
                <goals>
                    <goal>check</goal>
                </goals>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>

    </pluginExecutions>
</lifecycleMappingMetadata>

SpringSource Tool Suite 2.8.0위한 Maven 통합 업그레이드를 블로그에 올린 후 수정했습니다.

"어머, 프로젝트가 더 이상 구축되지 않음" 섹션의 조언을 따르십시오.SpringSource Tool Suite를 사용하는 경우에도 이클립스 설치를 정기적으로 수정했습니다.폼 파일을 수정할 필요가 없었어요.

Indigo와 XSD에서 Java 소스를 생성해야 하는 프로젝트에 대해서도 같은 문제가 있었습니다.
페이지의 설명에 따라 누락된 라이프 사이클 매핑을 제공하여 수정할 수 있습니다.

이 오류는 네온에서도 m2e 커넥터가 없기 때문에 발생합니다.해결책: 오류를 가리키고 새 m2e 커넥터 검색을 선택합니다.

그러면 새 커넥터가 설치되고 끝입니다.

Sonatype의 마지막 버전인 m2e 0.12를 사용합니다.

WTP 검색 위치:

pom.xml의 < plugin > 위에 마우스를 놓고 "Discover new m2e connectors" (새로운 m2e 커넥터 검출)을 누릅니다.

디폴트 체크되어 있는 것을 모두 인스톨 하면 동작합니다.

m2e 업데이트 후에도 동일한 문제가 발생하여 Maven Integration for Eclipse WTP를 재설치하여 해결하였습니다.

알고 보니 m2e를 버전 0.x에서 1.x로 업데이트하려고 제거했습니다.

사용하고 있었습니다.

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
    <execution>
        <id>runSomeAntTasks</id>
        <phase>test-compile</phase>
        .
        .
        <goals>
            <goal>run</goal>
        </goals>
    </execution>
</executions>

로 변경했습니다.

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
    <execution>
        <id>runSomeAntTasks</id>
        <phase>integration-test</phase>
        .
        .
        
        <goals>
            <goal>run</goal>
        </goals>
    </execution>
</executions>

오류가 사라졌습니다.실행을 테스트 컴파일 단계에 바인드하는 것은 권장되지 않을 수 있습니다.따라서 다른 단계를 찾는 것이 플러그인 관리 구성을 메이븐 라이프 사이클에 추가하는 대체 솔루션이 될 수 있습니다.

나는 오늘 이 문제가 있었다.번들 Roo 1.2.4에서 STS 3.4를 사용하고 있었습니다.나중에 이클립스 케플러와 루 1.2.5로 같은 오류를 시도했습니다.

플러그인을 추가하는 pom.xml을 변경했습니다.템플릿 태그가 빌드 후 및 플러그인 선언 전에 지정되지만 작동하지 않았습니다.

무엇이 나를 마법으로 만들었을까?

  • jdk 1.7.0_51 사용
  • Roo 1.2.5 다운로드
  • Maven 3.2.1 다운로드(그렇지 않은 경우 "이클립스 수행"을 실행하면 "error=2, 해당 파일 또는 디렉터리가 없습니다"라는 오류가 표시됨)
  • PATH에 JDK, Roo 및 Maven bin 디렉토리를 설정했습니다.

    PATH=/opt/jdk1.7.0_51/bin 내보내기:$PATH 내보내기 PATH=/opt/spring-roo-1.2.5.RELEASE/bin:$PATH 내보내기 PATH=/opt/apache-mapen-3.2.1/bin:$경로.

다음과 같이 설정. (http://docs.spring.io/spring-roo/reference/html/beginning.html)

$ mkdir hello 
$ cd hello
$ roo.sh
roo> project --topLevelPackage com.foo
roo> jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT 
roo> web mvc setup
roo> perform eclipse

Eclipse로 열기(STS는 없지만 작동 가능):-> 기존 프로젝트를 워크스페이스로 Import

변화하는

<artifactId>aspectj-maven-plugin</artifactId>
<version>1.2</version>

안으로

<artifactId>aspectj-maven-plugin</artifactId>
<version>1.3</version>

문제를 해결해 주셨어요.

maven srift 플러그인에서도 똑같은 문제가 발생하였습니다.다음은 pom.xml을 망칠 필요가 없는 제 해결책입니다.

  1. 명령줄 표시기 유틸리티 mvn 사용

    mvn 일식: 개요

    일식 프로젝트를 만들다

  2. 프로젝트를 일식으로 가져옵니다.사용하는 것을 잊지 마세요.

    [ File ] > [ Import ]> [ General ]> 워크스페이스에 기존 프로젝트

    워크스페이스에 프로젝트를 추가합니다.

이것으로 문제가 해결됩니다.

이 답변은 위의 상위 플러그인 관리 답변과 마찬가지로 좋습니다(즉, 끔찍합니다).

문제가 되는 XML 코드를 모두 삭제해 주세요.

완료. 문제가 해결되었습니다(마븐 구성을 방금 망가뜨린 것만 제외).

개발자는 이러한 솔루션을 수행하기 전에 플러그인 관리 태그를 이해할 수 있도록 매우 주의해야 합니다.플러그 인에 랜덤한 플러그인 관리를 하는 것만으로 다른 모든 사용자가 이클립스 기능을 이용할 수 있는 구조가 무너질 가능성이 있습니다.

POM 파일을 망치는 대신 이클립스의 Show View → Markers(보기마커 표시)로 이동하여 적절한 오류의 마커를 선택하고 삭제하는 것이 좋습니다.

Eclipse Juno를 사용하는 경우 Maven Integration For Eclipse WTP의 문제가 될 수 있습니다. 따라서 Eclipse Market Place에서 동일한 제품을 설치하십시오.

Eclipse IDE 도움말 >> Eclipse Market Place >> 에서 쿼리 wtp 를 입력하면 Juno 용 이클립스 WTP 의 maven 연동이 표시됩니다.설치 및 maven 의존관계 갱신을 통해 wtp 를 즐길 수 있습니다.

저도 같은 오류가 발생했어요.다음을 하고 나서 그것은 없어졌다.

  1. 프로젝트를 오른쪽 클릭합니다.
  2. [ Maven ]> [ Update Project ... ]를 선택합니다.

이 에러는 일식 시에 억제할 수 있습니다.창 -> 설정 -> 메이븐 -> 오류/경고

Eclipse v4.3(Kepler)과 Maven 3.1을 사용하여 이 문제를 발견했습니다.

해결책은 Eclipse 프로젝트에 JRE가 아닌 JDK를 사용하는 것입니다.꼭 시도해 보세요maven cleanEclipse에서 테스트하여 누락된 JAR 파일을 다운로드합니다.

GUI 힌트에 따라 커넥터를 검색한 결과 Spring Source Team의 Aspect J Integrator가 검색되었습니다.설치 후 해결되었습니다.

대부분의 답변은 오류를 무시하는 것에 대한 것이며, 다른 제안 솔루션은 [maven-compiler-plugin]의 경우 작동하지 않습니다.이 문제에 대한 나의 해결책:

  1. 시스템 의 .m2 로컬저장소로 이동하여org.apache.maven.plugins디렉토리:
    • C:\사용자\[사용자 이름]\.m2\repository\org\apache\maven\plugins
  2. 이 디렉토리에서 maven-compiler-plugin 폴더를 제거합니다.
    • IDE(이클립스)를 닫아야 할 수 있습니다.
  3. 그 후 IDE를 다시 열고 Maven의 프로젝트를 업데이트합니다.
    • Eclipse에서 프로젝트 루트를 오른쪽 클릭하여 Maven -> Update project...선택합니다.

언급URL : https://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin

반응형