오늘 밤부터 maven 사이트 3.3 플러그인이 작동하지 않습니다.
로컬 저장소를 삭제하려고하지만 변경 사항은 없습니다. Maven 3.3.9 자바 1.8
사이트 플러그인에 대해 pom에 정의 된 구성 또는 종속성 없음
[WARNING] Error injecting: org.apache.maven.report.projectinfo.CiManagementReport
java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent
답변
빌드 중에도이 문제가 발생하기 시작했습니다. 무엇 나를 위해 일한 것은 구체적으로 정의하는 것이었다 maven-site-plugin
과를 maven-project-info-reports-plugin
치어의 버전 번호와 함께.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
답변
이는 maven-project-info-reports-plugin이 3.0.0으로 업데이트되고 doxia-site-renderer 1.8 (이 클래스는 org.apache.maven.doxia.siterenderer.DocumentContent가 있음)에 의존하지만 maven-site로 인해 발생합니다. -plugin : 3.3은 doxia-site-renderer : 1.4에 의존합니다 (그리고 org.apache.maven.doxia.siterenderer.DocumentContent가 없습니다)
보고 부분에서 특정 maven-project-info-reports-plugin 버전을 지정할 수 있습니다.
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
</plugins>
</reporting>
또는 maven-site-plugin을 다음과 같이 최신 3.7.1로 지정할 수 있습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
pom의 빌드 부분에서
답변
maven 사이트 플러그인의 버전도 빌드 섹션에서 명시 적으로 설정해야합니다. 다음은 그 예입니다.
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>licenses</report>
<report>dependency-info</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<!-- Part of Maven - specified version explicitly for compatibility
with the maven-project-info-reports-plugin 3.0.0-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
</plugins>
</build>
답변
Maven 3는 더 이상 Doxia를 지원하지 않습니다.
사용하다
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.2</version>
</plugin>
참조 : https://maven.apache.org/plugins/maven-site-plugin/maven-3.html
답변
더 많은 정보를 추가해야합니다 (BTW를 반대하지 않았습니다).
IIRC; 수명주기 단계에 바인딩 된 플러그인의 버전을 지정하지 않으면 최신 버전이 제공됩니다.
시험:
- 최신 버전의 maven- 3.5.4로 업그레이드
ATOW
mvn help:effective-pom
실제로 해결되는 버전 실행 및 확인-CI의 이전 로그가 있거나 비교할 위치 ..- 섹션 에서
maven-site-plugin
버전을 명시 적으로 설정pluginManagement
- 종속성 추가
maven-site-plugin
(아래 참조)
org/apache/maven/doxia/siterenderer/DocumentContent
다음에서 찾을 수 있습니다 doxia-site-renderer
.
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-site-renderer</artifactId>
<version>1.8.1</version>
</dependency>
maven-site-plugin의 버전을 (부수적으로) 사용했던 것으로 명시 적으로 설정하면 작동합니다.
편집 : maven 플러그인 빌드 테스트에서 비슷한 문제를 쫓고 maven-site-plugin
있었고에서 사용하는 통합 pom에서 버전 (3.7.1 ATOW)을 명시 적으로 설정 maven-invoker-plugin
하는 것이 저에게 효과적 이었습니다.
답변
또한 오늘 일부 빌드 작업에서이 오류가 발생했습니다. 위에서 제안한 수정은 maven-site-plugin에 대한 구체적인 종속성을 추가하여 작동하며이 문제를 수정합니다.
그러나 그것이 나를 위해 강조한 것은 내가 mvn 사이트 목표를 실행하고 있다는 사실이었습니다. 이는 우리가 실행 중이라는 것을 몰랐고 실제로 필요하지 않습니다.
내 수정 사항은 내 mvn arg에서 사이트 목표를 제거하는 것이 었습니다. 사이트가 실제로 매우 유용하지만 우리가 생성하고 있다는 것을 결코 알지 못했고 어디에도 게시하지 않았으며 어쨌든 실제로 모든 빌드를 삭제했습니다.
답변
Changhua의 조언을 따르고 maven-project-info-reports-plugin을 버전 3.0.0으로 정의하고 maven-site-plugin을 3.7.1로 내 pom 파일에 정의하려고 시도했지만 maven 사이트가 여전히 버전 3.3에서 가져옴 내가 설정 한 방법에 관계없이 maven-site-plugin의.
마침내 내 문제가 프로젝트 구조와 관련이 있다는 것을 깨달았습니다. 우리는 maven-site-plugin 의존성을 정의하고있는 부모 pom을 가지고 있는데,이 의존성은 자식 poms에 의해 상속되었습니다. 그러나 빌드 pom 파일은 분리되어 있고 maven-site-plugin을 전혀 정의하지 않았기 때문에 maven이 3.3 버전을 자체적으로 가져올 수있었습니다. 빌드 pom 파일에 maven-site-plugin 종속성 (버전 3.7.1)을 추가하여 이제 빌드 pom 파일과 상위 pom 파일에 모두 존재하며 이제 빌드가 버전 3.7.1을 올바르게 사용하고 있습니다. 다시 지나가고 있습니다.
