2010-03-16 5 views
0

프로젝트에서 사용자 정의 메이븐 패키징과 연관된 라이프 사이클을 정의했습니다 (components.xml의 정의와 LifecycleMapping의 정의를 통해).maven 사용자 정의 패키징을 위해 이클립스 프로젝트를 생성합니다.

분명히이 패키징은 Eclipse에서 플러그인이 작성된 특정 개발에 해당합니다. 내가하고 싶은 것은 pom.xml 내용에 따라 Eclipse를 구성하는 것이다.

분명히 Customizable build lifecycle을 보았습니다. 그러나 제공된 정보가 혼란 스럽습니다.

내가 이해하는 바에 따르면, 필자는 타겟 프로젝트에 빌드 플러그인을 정의해야한다.이 프로젝트 플러그인은 내 프로젝트와 관련된 구성 요소를 추가 할 것이다. 예를 들어, mycompany.mydev.MyEclipseConfigurator라는 피규 레이터를 가지고, 나는

 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.maven.ide.eclipse</groupId> 
     <artifactId>lifecycle-mapping</artifactId> 
     <version>0.9.9-SNAPSHOT</version> 
     <configuration> 
      <mappingId>customizable</mappingId> 
      <configurators> 
      <configurator id='mycompany.mydev.MyEclipseConfigurator'/> 
      </configurators> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

내가 맞죠 작성해야?

답변

1

실제로, 이전에 언급 된 문서는 더 이상 사용되지 않는 버전의 maven eclipse 플러그인을 참조합니다.

The most up-to-date version은 프로젝트의 속성과 빌더를 지정하여 paven.xml 내에서 eclipse 프로젝트를 구성하는 방법을 명확하게 명시합니다.

1

사용자 정의 패키징에서 문제점은 Maven이 프로젝트를 Java 기반으로 인식하지 못했기 때문에 Maven Eclipse 플러그인이 .project 파일에 올바른 항목을 생성하지 않았고 .classpath을 생성하지 않았다는 것입니다.

먼저 POM에 올바른 빌드 명령과 특성을 추가하여 문제를 해결할 수 있지만 여전히 사용자에게 .classpath을주지는 않습니다.

이 솔루션은 components.xml에 다음 단편을 추가하는 것입니다 :이 추가로

<component> 
     <role>org.apache.maven.artifact.handler.ArtifactHandler 
     </role> 
     <role-hint>(fill in your own packaging)</role-hint> 
     <implementation> 
      org.apache.maven.artifact.handler.DefaultArtifactHandler 
     </implementation> 
     <configuration> 
      <type>(fill in your own packaging)</type> 
      <extension>(choose war or jar if required)</extension> 
      <language>java</language> 
      <addedToClasspath>true</addedToClasspath> 
     </configuration> 
    </component> 

에서, MEP는 보통 JAR 또는 WAR 프로젝트로 프로젝트를 치료하고 예상되는 이클립스 구성을 생성합니다 그것을 위해.