ODL karaf 에서 impl 모듈만 빌드해서 다시 띄우는 방법

ODL 개발시 impl 쪽을 수정할때마다 매번 프로젝트 전체를 빌드하고 다시 karaf를 띄우는게 시간이 오래걸려 확인해보니

karaf 내에서 각 bundle별로 죽였다 다시 띄울때 jar 파일만 교체해주면 전체를 빌드하지 않아도 손쉽게 적용이 가능하다.

  • ~/karaf/target/assembly/system/org/opendaylight/hello/hello-service/0.1.0-SNAPSHOT/hello-Service-0.1.0-SNAPSHOT.jar

위와 같이 karaf 폴더안에 system 폴더까지 들어가보면 프로젝트의 groupId의 경로에 각종 모듈들의 jar 파일이 존재한다. 여기에 포함되어있는 jar 파일만 교체를 해주면 karaf 를 재기동 하지 않아도 수정된 bundle을 다시 띄울수 있다.

띄우는 방법은 우선 아래 명령어를 이용하여 자신이 수정한 모듈을 찾는다.

1
feature:list -i

내가 수정하려는 bundle의 예는 다음과 같다.

1
2
3
4
odl-helloService-api            | 0.1.0-SNAPSHOT   | x         | odl-helloService-0.1.0-SNAPSHOT      | OpenDaylight :: helloService :: api
odl-helloService | 0.1.0-SNAPSHOT | x | odl-helloService-0.1.0-SNAPSHOT | OpenDaylight :: helloService
odl-helloService-rest | 0.1.0-SNAPSHOT | x | odl-helloService-0.1.0-SNAPSHOT | OpenDaylight :: helloService :: REST
odl-helloService-ui | 0.1.0-SNAPSHOT | x | odl-helloService-0.1.0-SNAPSHOT | OpenDaylight :: helloService :: UI

이제 수정하려는 모듈인 odl-helloService 을 uninstall 한다.

1
feature:uninstall odl-helloService

그리고 위에 설명한것 처럼 수정된 jar 파일을 경로에 맞게 옮겨놓고 다시 아래 명령어로 feature를 install 하면 된다.

1
feature:install odl-helloService

옮겨진 jar 파일명은 당연히 기존 파일명과 동일하게 맞춰야한다.

위고하정이 정상적으로 수행이 되면 프로젝트 전체를 빌드하지 않고 특정 module만 재배포가 가능하다.

공유하기