2017-02-24 4 views
0

어떻게 든 같은 Eclipse 플러그인 프로젝트EMF 모델 및 생성 된 EMF 편집 코드 모두에 사용할 수 있습니까?EMF 모델 및 편집 코드에 동일한 프로젝트를 사용합니까?

일반적으로이 두 구성 요소는 이름이 .edit 인 EMF 편집 프로젝트의 두 가지 프로젝트에 상주합니다. 편집 프로젝트에 코드가 거의 없기 때문에이 코드는 불필요합니다. 모델 코드와 너무 밀접하게 관련되어 있습니다.

동일한 프로젝트의 modelDirectoryeditDirectory Gen Model 특성을 (다른) 디렉터리에 설정하려고 시도했지만 그 혼란과 빌드 문제가 끊이지 않는 것으로 보입니다. 두 세대의 단계가 서로 다른 프로젝트 설정 파일을 덮어 쓸 수도 있습니다.

답변

1

더 많은 실험을 한 후 같은 프로젝트에서 EMF 및 EMF Edit 코드를 생성하는 것이 좋습니다. 내가 일하기 위해해야 ​​할 일을했을

것들은 다음과 같다 :

  1. 같은 디렉토리에 genmodel 일 속성 modelDirectoryeditDirectory 설정. 그렇지 않으면 "형식이 이미 정의되었습니다 ..."라는 빌드 오류가 발생했습니다..
  2. genmodel 등록 정보 설정 bundleManifest="false". 그렇지 않으면 플러그인 ID가 생성 프로세스에 의해 겹쳐 쓰여집니다.

이 외에도 생성 프로세스가 그 주위를 회피하지 않도록 updateClasspath="false"을 설정합니다.

  • plugin.xml
  • 에 EMF 확장을 추가

    1. 설정 플러그인 ID
    2. 추가 수출 패키지 :

      매니페스트 및 plugin.xml 파일에 대한 자동 업데이트

      다음과 같은 것 같다

      2와 3은 원할 경우 수동으로 수행해야합니다. 그 경우 다음과 비슷한 plugin.xml에 항목을 추가해야합니다.

      <extension point="org.eclipse.emf.ecore.generated_package"> 
          <!-- @generated model --> 
          <package 
           uri="somePackage" 
           class="somePackage.SomePackage" 
           genModel="model/model.xcore"/> 
      </extension> 
      
      <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories"> 
          <!-- @generated model --> 
          <factory 
           uri="somePackage" 
           class="somePackage.someClass" 
           supportedTypes= 
            "org.eclipse.emf.edit.provider.IEditingDomainItemProvider 
            org.eclipse.emf.edit.provider.IStructuredItemContentProvider 
            org.eclipse.emf.edit.provider.ITreeItemContentProvider 
            org.eclipse.emf.edit.provider.IItemLabelProvider 
            org.eclipse.emf.edit.provider.IItemPropertySource"/> 
      </extension>