2012-07-26 4 views
0

Maven에 플러그인을 쓰고 있습니다. 나는 메이븐 버전에 대한 조치 의해 좌우을 사용자 정의 할 (사람의 내 플러그인을 사용하는 사람) 같은 뭔가 : 나는 빌드 - 도우미 - 받는다는 - 플러그인을 발견하지만 난이 작업을 수행하는 데 사용하는 방법 슈어 아니에요플러그인에서 Maven 버전 사용

if (MavenVer == "2.2.1") 
    //do some things 
if (MavenVer == "3.0") 
//do another things 

을 일. 내가 대답을 찾고있다

public class MyMojo extends AbstractMojo { 
/** 
* @component 
*/ 
ArtifactFactory factory; 
/** 
* @component 
*/ 
ArtifactResolver artifactResolver; 
/** 
* @parameter default-value="${project.remoteArtifactRepositories}" 
*/ 
List remoteRepositories; 
/** 
* @parameter default-value="${localRepository}" 
*/ 
ArtifactRepository localRepository; 
/** 
* @parameter default-value="${project}" 
*/ 
MavenProject mavenProject; 
+0

Maven 버전에서 어떤 종류의 동작이 다른지 자세히 설명 할 수 있습니까? – khmarbaise

+0

mvn2 및 mvn3에 대해 다른 API를 사용하는 외부 플러그인을 사용하고 있습니다. 그래서 저는 그것을 런트 미에서 알아야합니다. – Mic

답변

1

당신은 plugina로 받는다는 참조를 주입하고 간단하게 주입 API http://maven.apache.org/ref/2.2.1/maven-project/apidocs/org/apache/maven/project/MavenProject.html#getVersion()

http://maven.apache.org/ref/3.0.3/maven-core/apidocs/org/apache/maven/project/MavenProject.html#getVersion()

코드를 사용하여 버전을 확인해야 귀하의 질문에 나는 메이븐 버젼을 구할 수있는 간단한 방법이 없다는 결론을 내 렸습니다. 아니면 적어도 그것을 찾을 수 없었습니다. 내가 찾은 가장 좋은 점은 maven-enforcer-plugin에 maven 버전을 찾는 코드가 있다는 것입니다. 그러나 maven-enforcer-plugin 소스 코드를 살펴보면 약간 복잡하고 Plexus (Maven에서 사용하는 IoC 컨테이너)를 통해 RuntimeInformation 인스턴스에 대한 핸들을 얻는 작업이 포함됩니다.

maven-enforcer-plugin을 살펴보고 그들이 한 일을 사용할 수 있는지 확인하는 것이 좋습니다. RequireMavenVersion 및 EnforcerMojo 클래스에 특히주의하십시오.

+0

위에서 언급 한 getVersion은 저의 MY Plugin 버전을 제공합니다 : 1.0-SNAPSHOT. 내 플러그인을 실행하는 Maven의 버전을 알아야합니다. – Mic

+0

plugin의 버전은 무엇이며 프로젝트의 버전은 무엇입니까? 나는 문제가 플러그인 1.0 버전의 현재 버전과 플러그인 프로젝트에만 plugin을 연결하는 한 1.0 스냅 샷을 얻는 것입니다. 플러그인이 "실제 (플러그인이 아님)"프로젝트에 연결되면 실제 프로젝트의 버전을 얻을 수 있다고 가정합니다. –

+0

미안하지만, 그것이 의미하는 바가 아닙니다. 설명해 드리겠습니다 : http://maven.apache.org/의 "Download"섹션으로 가면 세 가지 버전이 있음을 알 수 있습니다. Maven 3.0.4, Maven 2.2.1 및 Maven 2.0.11. 나는이 플러그인 중 하나를 "real (not plugin)"프로젝트에 연결하는 데 사용되는 플러그인을 알고 싶습니다. :) – Mic

관련 문제