2012-06-13 3 views
0

i로 설정하면 Eclipse WTP의 API를 사용하여 새로운 "EAR Application Project"를 만드는 Eclipse Plugin을 작성합니다. 이 새로운 프로젝트의 "런타임"값을 설정하는 데 어려움을 겪고 있습니다.런타임을 IFacetedProject

(에 '정상'사용자로) 나는 이클립스 GUI를 사용하여 동일한 프로젝트를 만들 때 "org.eclipse.wst.common.project.facet.core.xml"의 내용이다

:

<?xml version="1.0" encoding="UTF-8"?> 
<faceted-project> 
    <runtime name="GlassFish 3.1.2"/> 
    <fixed facet="jst.ear"/> 
    <installed facet="jst.ear" version="6.0"/> 
    <installed facet="sun.facet" version="9"/> 
</faceted-project> 

을 하지만 내 EAP 프로젝트에 다음 값을 설정하는 방법을 찾을 수없는면 처리 (WTP 플러그인에서 제공하는 API를 사용하여) 프로젝트 I를 만들 때 :

<runtime name="GlassFish 3.1.2"/> 
    <fixed facet="jst.ear"/> 

다음은 내가 프로그래밍이 프로젝트를 만들 때 기록 같은 XML입니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<faceted-project> 
    <installed facet="jst.ear" version="6.0"/> 
    <installed facet="sun.facet" version="9"/> 
</faceted-project> 

은 여기 방법이 프로젝트를 만드는 메신저 :

 IFacetedProject facetedProject = ProjectFacetsManager.create("prj1", new Path(prj), null); 
     IFacetedProjectWorkingCopy workingCopy = facetedProject.createWorkingCopy(); 

     IProjectFacet jstFacet = ProjectFacetsManager.getProjectFacet("jst.ear"); 
     IProjectFacet sunFacet = ProjectFacetsManager.getProjectFacet("sun.facet"); 

     IProjectFacetVersion defaultJstFacet = jstFacet.getDefaultVersion(); 
     IProjectFacetVersion defaultSunFacet = sunFacet.getDefaultVersion(); 
     workingCopy.addProjectFacet(defaultJstFacet); 
     workingCopy.addProjectFacet(defaultSunFacet); 
     workingCopy.commitChanges(null); 

내가 뭔가 잘못하고 오전?

답변

0

고정 된면을 설정하려면 IFacetedProjectWorkingCopy.setFixedProjectFacets() 메서드를 사용해야합니다.

런타임을 설정하려면 IFacetedProjectWorkingCopy.setTargetedRuntimes() 메서드를 사용해야합니다. IRuntime 인스턴스는 getRuntimes() 또는 getRuntimes (name)와 같은 RuntimeManager API를 통해 찾을 수 있습니다.

+0

좋아요! 그것은 작동합니다. 하지만 Junit Plugin Test로 실행하면 동일한 런타임이로드되지 않습니다. JUnit은 필요한 번들을로드하지 않는다고 생각합니다. JUnit Plugin Test를 실행할 때 런타임 (내 경우 Glassfish 3.1.2)을 인식하는 데 필요한 것이 무엇인지 알고 계십니까? Komissarchik 고맙습니다. –