문제

Eclipse 플러그인에 심각한 문제가 있습니다 ..

내 플러그인은 다른 두 플러그인에 따라 다릅니다. 모든 플러그인 (내 플러그인 포함) Mozilla Rhino 엔진 사용 - 2 개는 사용합니다. js.jar (버전 1.4). 그러나 내 플러그인은 새 버전을 사용하여 아직 출시되지 않았으며 myrhino.jar.

개발하는 동안 모든 것이 잘 진행됩니다. 코드 완료는 나에게 특별 버전의 Rhino, 오류가 없음 등의 클래스와 방법을 제공합니다.

그러나 플러그인을 실행하면 다른 버전의 Rhino가 사용되며 ClassNotFoundException 등과 같은 런타임 예외를 얻습니다.

Eclipse에게 개발 시간과 같은 런타임에서 동일한 항아리를 사용하도록 어떻게해야합니까?

NetBeans에서 플러그인을 개발할 때 솔루션은 간단했습니다. 항아리를 별도의 모듈로 포장 하고이 새로운 모듈에 대한 내보내기 및 선언하는 패키지 세트. 래퍼 플러그인에 대한 의존성을 선언했지만 개발 시간에도 패키지와 클래스를 사용할 수 없었습니다.

나는이 문제로 몇 시간을 보냈고 그것을 해결하지 않았으므로 도움이 감사합니다. 모두 감사합니다.

도움이 되었습니까?

해결책 2

마침내 나는 그것을 해결했다 ..

Eclipse의 새로운 프로젝트 마법사에 의해 래퍼 플러그인 형태의 기존 용기를 작성하는 것은 간단합니다. 그러나 캐치는 마법사가 Bundle ClassPath에 항아리를 포함하지 않는다는 것입니다 (예상대로). Prety는 (적어도 나를 위해) 마법사가 당신을 위해 일의 절반 만 수행한다는 것을 혼란스럽게합니다 :/

래퍼 플러그인 번들 클래스 경로에 항아리를 삽입 한 후 모든 작업이 작동합니다.

어쨌든 당신의 응답에 감사드립니다 :)

다른 팁

의존성이 올바른지 확인하십시오. 코드가 새 버전의 라이브러리에 의존하는 경우, 당신은 당신의 manifest.mf에 그것을 표시해야합니다. 예 : 번들 org.mozilla.rhino가 필요한 경우 필요한 최소 버전을 지정하십시오.

Require-Bundle: org.mozilla.rhino;bundle-version="1.5.0"

MyRhino.jar는 아직 출시되지 않았지만 올바른 버전 (예 : 1.5.0)을 지정해야합니다.

Bundle-Version: 1.5.0.qualifier

(myrhino.jar가 아직 플러그인으로 변환되지 않은 경우 수동으로 수행해야합니다.

대안은 myrhino.jar를 플러그인으로 래핑하고 다른 플러그인에서 종속성을 제거 할 수 있습니다. 이렇게하려면 번들 클래스 경로를 사용하십시오 (참조 http://www.aqute.biz/blog/2007-02-19 자세한 내용은). myrhino.jar를 플러그인에 직접 넣으면 번들 클래스 경로가 있어야합니다.

Bundle-ClassPath: .,MyRhino.jar
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top