2011-04-22 3 views
1

Eclipse 용 플러그인을 개발 중입니다. 플러그인의 목적은 Acceleo를 사용하여 코드를 생성하는 것입니다.Eclipse IDE 플러그인 개발 : 플러그인 jar에서 활성 프로젝트 폴더로 파일 복사

플러그인 생성기가 코드를 생성 한 후 파일이 생성 된 폴더에 생성기 플러그인 jar 디렉토리의 내용을 복사하려고합니다.

org.plugin.generator/framework | 내용을 복사 : || \/ 작업 영역/ProjectFolder/generatedFiles/클래스

나는 경로를 얻을 수 있습니다,하지만 난 항아리에서 프레임 워크 폴더를 추출하고 현재 프로젝트 폴더에있는 내용을 복사하는 방법을 알아낼 수 없습니다.

아무도 알려주시겠습니까? 저는 Eclipse 플러그인 개발의 초보자입니다. 또한, 이것은 1-2 년 동안 브라우징을 해왔지만 여기에 내 첫 번째 질문입니다.

+0

jar에 대한 경로를 얻는 것은 Eclipse 플러그인에서 작업하는 한 어려운 부분입니다. 그 후 java.util.ZipInputStream을 사용하여 필요한 파일을 추출 할 수 있습니다. 어떤 부분에 문제가 있습니까? –

답변

4

다음은 플러그인에서 파일을 읽고 프로젝트에 쓰는 대략적인 코드입니다. 번들 폴더에 파일을 나열하는 방법이 있는지 모르겠지만 복사해야하는 파일 목록을 항상 하드 코딩 할 수 있습니다.

Bundle bundle = Platform.getBundle("your.plugin.id"); 
InputStream stream = FileLocator.openStream(bundle, "path.in.plugin", false); 
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("your.project"); 
IFile file = project.getFile("something/abc.txt"); 
file.create(stream, true, null); 

위의 코드 단편에 예외 처리와 스트림 닫기를 추가해야합니다.

+0

답변 해 주셔서 감사합니다. 나는 이것을 사용하여 문제를 해결할 수 있었다 : File f = new File (FileLocator.toFileURL (Platform.getBundle ("pluginID"). getEntry ("/")). toURI()); – ThatJoeGuy

+0

Jars로 플러그인을 배포 할 때 권장되는 방법과 달리 프로덕션 환경에서 플러그인을 폭발시키는 것과 관련하여 그렇게하는 것은 좋지 않습니다. 내가 보여준 API는 어느 쪽이든 작동합니다. –