[maven] 왜 pom.xml의 modelVersion이 필요하고 항상 4.0.0으로 설정됩니까?

Maven의 <modelVersion></modelVersion>pom.xml은 항상 4.0.0으로 설정되어 있습니다.

이 태그의 중요성과 4.0.0으로 설정해야하는 이유를 이해하도록 도와 주시겠습니까?



답변

현재 다른 모델이 없기 때문에 Maven 2 및 3에서는 항상 4.0.0으로 설정됩니다.

modelVersion4.0.0 이 포함되어 있습니다. 현재 유일하게 지원되는 POM 버전이며 항상 필요합니다. [ 출처 ]

그러나 다른 버전의 모델이있는 경우 항상 4.0.0으로 설정할 필요 는 없습니다 . POM은 모델을 준수해야합니다. Maven 4에 모델 4.1이 있다고 가정 해 보겠습니다. 4.1을 준수하도록 pom을 작성하면 Maven 3 및 모델 4.0.0과 호환되지 않습니다.

새 모델이 정의 된 경우 특정 XML 모델을 적용하기 위해 필수로 정의됩니다.


답변

모델 버전은 POM이 준수하는 프로젝트 설명 자의 버전입니다. 포함되어야하고 설정되어야합니다. 4.0.0 값은 Maven 3과 호환된다는 것을 나타냅니다.


답변

정답은 @Toumi와 @Boj의 답변의 조합이어야합니다. 이에 대한 자세한 배경 정보는 https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0 을 참조하십시오.


답변

modelVersion -POM의 모델 버전을 포함합니다. Maven 1.x는 3.0.0 요소를 포함하는 모델을 루트의 직계 자식으로 사용했습니다. Maven 2.x / 3.x는 4.0.0 요소를 사용했습니다.

version- 프로젝트의 버전을 포함합니다. 이 속성이 누락 된 경우 상위 요소가 있어야하며 버전은 상위 프로젝트에서 상속됩니다.


답변