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 | odl-helloService-api | 0.1.0-SNAPSHOT | x | odl-helloService-0.1.0-SNAPSHOT | OpenDaylight :: helloService :: api |
이제 수정하려는 모듈인 odl-helloService 을 uninstall 한다.
1 | feature:uninstall odl-helloService |
그리고 위에 설명한것 처럼 수정된 jar 파일을 경로에 맞게 옮겨놓고 다시 아래 명령어로 feature를 install 하면 된다.
1 | feature:install odl-helloService |
옮겨진 jar 파일명은 당연히 기존 파일명과 동일하게 맞춰야한다.
위고하정이 정상적으로 수행이 되면 프로젝트 전체를 빌드하지 않고 특정 module만 재배포가 가능하다.