Maven 3으로 업데이트 한 후 각 빌드마다 다음과 같은 경고 메시지가 나타납니다.
이러한 경고를 없애려면 어떻게해야합니까?
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for proj:id:jar:3.1
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 195, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 204, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 227, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 215, column 15
[WARNING] 'reporting.plugins.plugin.version' for org.codehaus.mojo:jdepend-maven-plugin is missing. @ line 271, column 15
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
답변
파일 에서 <version>
뒤에 요소를 추가 하십시오. 다음 텍스트를 찾으십시오.<plugin>
<artifactId>
pom.xml
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
버전 태그를 추가하십시오.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
경고를 해결해야합니다.
이것을 고려하면:
org.apache.maven.plugins : maven-compiler-plugin에 대한 ‘build.plugins.plugin.version’이 누락되었습니다
많은 사람들이 문제가 발생하는 이유를 언급 했지만 해결책을 제시하지는 않습니다. 프로젝트의 POM 파일로 이동하여 <version>
위와 같이 태그를 추가하기 만하면됩니다.
버전 번호를 확인하는 한 가지 방법은 Maven의 실행이 완료된 후 출력을 확인하는 것입니다. 버전 번호가 누락되면 Maven은 기본 버전을 표시합니다.
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ entities ---
2.3.2
위와 같이 해당 버전 번호 를 사용하여 그림과 같이 POM에 추가하십시오.
답변
다음과 같이 실행하십시오.
$ mvn help : 설명 -DartifactId = maven-war-plugin -DgroupId = org.apache.maven.plugins
버전이없는 플러그인의 경우. 당신은 출력을 얻는다 :
이름 : Maven WAR Plugin 설명 : 프로젝트에서 WAR (Web Application Archive) 파일을 빌드합니다. 출력과 그 의존성. 그룹 ID : org.apache.maven.plugins 유물 ID : maven-war-plugin 버전 : 2.2 목표 접두사 : 전쟁
출력에 표시된 버전을 사용하십시오.
업데이트 버전 목록 중에서 선택하려면 http://search.maven.org/ 또는 http://mvnrepository.com/을 사용 하십시오. 선호하는 Java IDE에는 Maven 패키지 검색 대화 상자 가 있어야합니다 . 문서를 확인하십시오.
슈퍼 업데이트 또한 사용합니다 :
$ mvn dependency:tree
$ mvn dependency:list
$ mvn dependency:resolve
$ mvn dependency:resolve-plugins # <-- THIS
최근 플러그인 (또는 라이브러리)의 최신 버전 을 얻는 방법을 발견 하여 더 이상 인터넷 검색이나 Maven Central을 방문 할 필요가 없습니다 .
$ mvn versions:display-dependency-updates
$ mvn versions:display-plugin-updates # <-- THIS
답변
Maven 3은 POM-Structure에서 더 제한적입니다. 예를 들어 플러그인 버전을 설정해야합니다.
maven 3.1에서는 이러한 경고로 인해 빌드가 중단 될 수 있습니다. maven2와 maven3 사이에 더 많은 변경 사항이 있습니다. https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes
답변
다음에서 최신 버전 정보를 얻으십시오.
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin
최신 버전 (또는 사용하려는 버전)을 클릭하면 종속성 정보가 표시됩니다 (2019-05 기준 3.8.1).
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</dependency>
플러그인 태그에 버전 태그와 주석을 사용할 수 있습니다.
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source />
<target />
</configuration>
</plugin>
원하는 경우 다른 답변에 설명 된대로 속성 태그에 버전 정보를 갖도록 pom을 수정할 수 있습니다.
답변
내 프로젝트에 부모 pom을 사용하고 있으며 한 곳에서 버전을 지정하고 싶었으므로 속성을 사용하여 버전을 지정했습니다.
부모 치어 :
<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/xsd/maven-4.0.0.xsd">
....
<properties>
<maven-compiler-plugin-version>2.3.2</maven-compiler-plugin-version>
</properties>
....
</project>
프로젝트 퐁 :
<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/xsd/maven-4.0.0.xsd">
....
<build>
<finalName>helloworld</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin-version}</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
참조 :
https://www.allthingsdigital.nl/2011/04/10/maven-3-and-the-versions-dilemma/
답변
여기에 큰 대답입니다. 그리고 ‘Maven3에 요소를 추가하는 이유’를 추가하고 싶습니다.
에서 메이븐 3.X 호환성 노트
플러그인 메타
버전 분석 내부적으로 Maven 2.x는 자동 버전 플러그인을 지원하기 위해 특수 버전 마커 RELEASE 및 LATEST를 사용했습니다. 이러한 메타 버전은 선언 요소에서도 인식되었습니다. 재현 가능한 빌드를 위해 Maven 3.x는 더 이상 POM에서 이러한 메타 버전 사용을 지원하지 않습니다. 결과적으로 사용자는 이러한 메타 버전 발생을 구체적인 버전으로 교체해야합니다.
그리고 maven-compiler-plugin 에서도 찾을 수 있습니다-사용법
참고 : 플러그인 버전을 지정하지 않으면 Maven 3.0에서 경고를 표시합니다.
답변
pom.xml에서 “maven-jar-plugin”을 검색하고 버전 태그를 추가하십시오.