2013-10-17 1 views
2

Apache servicemix 4.5.2를 실행하고 있습니다. jar 파일과 같은 기능을 설치하려고합니다. 내가 원했던 기능은 jtidy입니다.servicemix에 기능 설치

<dependency> 
    <groupId>jtidy</groupId> 
    <artifactId>jtidy</artifactId> 
    <version>4aug2000r7-dev</version> 
</dependency> 

및 저장소 내가 명령 기능을 알고

http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.jar

입니다 :

POM을 의존성은 예를 들어, 웹 콘솔 설치하지만 jtidy 내 기능에없는 : 목록. 나는 또한 addurl 명령을 사용하여 시도했지만 작동하지 않았다. (addurl mvn : http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev) Karaf 문서는 기능 XML 스키마를 사용하여 기능 설명자를 추가 할 것을 권장하지만 불행히도 링크가 끊어집니다.

내가 한 일은 jtidy.jar을 다운로드하여 내 deploy 디렉토리에 복사 한 것입니다. 그것은 작동하지만, 이것이 올바른 방법이라고 생각하지 않습니다.

servicemix에 jtidy를 올바르게 설치하는 방법을 아는 사람이 있습니까?

감사합니다.

답변

6

기능을 설치하고 단일 JAR 또는 OSGi 번들을 설치하는 것과는 다른 점이 있습니다.

기능은 XML 파일에 정의됩니다. 기능은 함께 설치된 여러 번들, configs ...로 구성됩니다. Karaf의 기능에 대한 자세한 내용은 http://karaf.apache.org/manual/latest-2.3.x/users-guide/provisioning.html을 참조하십시오.

이 경우 컨테이너에 단일 JAR을 설치하려고합니다. 이 경우 osgi:install 명령을 사용하고 JAR을 가리키는 URL (예 : mvn:jtidy/jtidy/4aug2000r7-dev)을 사용할 수 있습니다.

그러나 귀하의 경우에는 복잡성이 하나 더 있습니다. jtidy은 자체적으로 OSGi 번들이 아닙니다. 필요한 OSGi 메타 데이터를 추가하는 가장 쉬운 방법은 wrap: 프로토콜을 사용하여 JAR에 OSGi 메타 데이터를 자동으로 추가하는 것입니다.

그래서, 물건을 포장 - 아파치 ServiceMix를이 jtidy 의존성을 설치, 당신은 당신의 대답을

osgi:install wrap:mvn:jtidy/jtidy/4aug2000r7-dev
+0

감사를 사용할 수 있습니다. BTW, 내 환경 (myJar.jar)에 로컬 인 자체 개발 한 항아리를 추가하려면 어떻게해야합니까? – Luixv

+2

Maven을 개발 용으로 사용하는 경우 일반적인 해결책은 이슈를 작성한 다음 이슈에 대한 동일한 종류의 URL (mvn : //)을 사용하는 것입니다. 그러나 URL은 원하는 모든 것이 될 수 있으므로 http : // ... 또는 file : //을 사용하여 이슈를 가리킬 수도 있습니다. – gertv

+0

감사합니다 (+1)! – Luixv