programing

m2e는 maven-dependency-dependency-dependencies("복사본 종속성", "복사본 종속성" 포함)를 지원하지 않습니다.

testmans 2023. 5. 20. 10:31
반응형

m2e는 maven-dependency-dependency-dependencies("복사본 종속성", "복사본 종속성" 포함)를 지원하지 않습니다.

저는 꽤 간단한 메이븐 프로젝트가 있습니다.

<project>
    <dependencies>
        ...
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/dependencies</outputDirectory>
                        </configuration>    
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

그러나 m2eclipse에서 다음 오류가 발생합니다.

Description Resource    Path    Location    Type
maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. pom.xml  /jasperreports-test line 60 Maven Project Build Lifecycle Mapping Problem

m2eclipse가 이 작업을 "지원"하지 않더라도 상관없는 이유는 무엇입니까?메이븐은 그래요, 그리고 그게 제가 정말로 신경쓰는 전부예요.프로젝트에서 이 오류를 제거하려면 어떻게 해야 합니까?

그것은 이미 알려진 문제인 것 같습니다.이를 무시하도록 m2e에 지시할 수 있습니다.

옵션 1: pom.xml

내부에 다음을 추가합니다.<build/>태그:

<pluginManagement>
<plugins>
    <!-- Ignore/Execute plugin execution -->
    <plugin>
        <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>1.0.0</version>
        <configuration>
            <lifecycleMappingMetadata>
                <pluginExecutions>
                    <!-- copy-dependency plugin -->
                    <pluginExecution>
                        <pluginExecutionFilter>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-dependency-plugin</artifactId>
                            <versionRange>[1.0.0,)</versionRange>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                        </pluginExecutionFilter>
                        <action>
                            <ignore />
                        </action>
                    </pluginExecution>
                </pluginExecutions>
            </lifecycleMappingMetadata>
        </configuration>
    </plugin>
   </plugins></pluginManagement>

메이븐을...-> 이후 프로젝트의 프로젝트 구성을 업데이트합니다.

자세히 보기: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#m2e_maven_plugin_coverage_status

옵션 2: 글로벌 이클립스 재정의

POM 파일 변경을 방지하기 위해 Eclipse 설정을 통해 전체 작업영역에 무시 오버라이드를 적용할 수 있습니다.

파일을 디스크 어딘가에 저장합니다. https://gist.github.com/maksimov/8906462

Eclipse/Preferences/Maven/Lifecycle Mappings이 파일을 찾아 확인을 클릭합니다.

이클립스 설정

이 문제는 Eclipse M2E 플러그인 실행에 대한 M2E 문제가 포함되지 않습니다.

이 문제를 해결하려면 인식하지 못하는 라이프사이클을 매핑하고 M2E에 실행을 지시하기만 하면 됩니다.

다음에 추가해야 합니다.plugins내부에build그러면 오류가 제거되고 M2E가 목표를 인식하게 됩니다.copy-depenciesmaven-dependency-plugin그리고 이클립스가 빌드할 때마다 종속성을 폴더에 복사하여 POM이 예상대로 작동하도록 합니다.오류를 무시하고 싶다면 변경합니다.<execute />위해서<ignore />동봉할 필요가 없습니다.maven-dependency-plugin안으로pluginManagement전에 제시한 바와 같이

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <versionRange>[2.0,)</versionRange>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <execute />
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

프로젝트에서 복사 종속성, 압축 풀기, 포장 풀기 등이 중요한 경우 이를 무시해서는 안 됩니다.당신은 당신의 것을 동봉해야 합니다.<plugins><pluginManagement>이클립스 인디고 SR1, 메이븐 2.2.1을 사용하여 테스트됨

Maven-dependency-plugin을 무시하는 대신 m2e 커넥터를 설치하여 작동시킬 수 있습니다.
https://github.com/ianbrandt/m2e-maven-dependency-plugin

Eclipse에서 수행할 방법은 다음과 같습니다.

  1. 창/환경설정/Maven/Discovery/로 이동
  2. 카탈로그 URL 입력: http://download.eclipse.org/technology/m2e/discovery/directory-1.4.xml
  3. 카탈로그 열기를 클릭합니다.
  4. m2e-maven-dependency-dependency-timeout을 선택합니다.
  5. 즐거운 시간 되세요.

위의 카이오투온의 답변에도 불구하고, 저는 이것을 처음에 작동시키는 데 여전히 문제가 있었습니다.

여러 번 시도한 끝에 마침내 작동했습니다.제 최종 버전을 여기에 붙여넣습니다. 다른 사람에게 도움이 되기를 바랍니다.

    <build> 
        <plugins>
            <!--
            Copy all Maven Dependencies (-MD) into libMD/ folder to use in classpath via shellscript
             --> 
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/libMD</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <!--  
        Above maven-dependepcy-plugin gives a validation error in m2e. 
        To fix that, add the plugin management step below. Per: http://stackoverflow.com/a/12109018
        -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-dependency-plugin</artifactId>
                                        <versionRange>[2.0,)</versionRange>
                                        <goals>
                                            <goal>copy-dependencies</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

하둡 프로젝트를 이클립스에서 로드하려고 할 때도 같은 문제가 있었습니다.위의 해결책들을 시도해봤는데, 이클립스 케플러에서 작동했을 수도 있다고 생각합니다.더 이상 확실하지도 않습니다(너무 많은 것을 포함).

제가 겪고 있던 모든 문제들로 인해, 저는 이클립스 루나로 넘어가기로 결정했고, 위의 해결책들은 저에게 효과가 없었습니다.

... 태그를 패키지로 변경할 것을 권장하는 다른 게시물이 있었습니다.저는 그렇게 하기 시작했고, 그것은 오류를 "제거"할 것입니다.하지만, 저는 그 변화들이 나중에 저를 물 것이라고 생각하기 시작합니다 - 저는 메이븐에 대한 전문가가 아닙니다.

다행히도, 저는 모든 오류를 제거하는 방법을 찾았습니다.창->환경설정->Maven->오류/경고로 이동하여 "플러그인 실행이 라이프사이클에 포함되지 않음.."무시" 옵션.도움이 되길 바랍니다.

저는 이것이 오래된 게시물이라는 것을 알고 있지만 오늘도 이 문제로 어려움을 겪었고 이 페이지의 템플릿을 사용했습니다: http://maven.apache.org/plugins/maven-dependency-plugin/usage.html

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.7</version>
        <executions>
          <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>[ groupId ]</groupId>
                  <artifactId>[ artifactId ]</artifactId>
                  <version>[ version ]</version>
                  <type>[ packaging ]</type>
                  <classifier> [classifier - optional] </classifier>
                  <overWrite>[ true or false ]</overWrite>
                  <outputDirectory>[ output directory ]</outputDirectory>
                  <destFileName>[ filename ]</destFileName>
                </artifactItem>
              </artifactItems>
              <!-- other configurations here -->
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

그리고 모든 것이 잘 작동합니다.m2e1.3.1.

사용하려고 했을 때

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/dependencies</outputDirectory>
                    </configuration>    
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

저도 받았어요.m2emessage

다른 옵션은 문제 탭으로 이동하여 오류를 마우스 오른쪽 단추로 클릭하고 빠른 수정 적용을 클릭하는 것입니다.에서는 ignore xml 코드를 생성하고 .pom 파일을 적용해야 합니다.

언급URL : https://stackoverflow.com/questions/8706017/maven-dependency-plugin-goals-copy-dependencies-unpack-is-not-supported-b

반응형