Để phát triển và build ứng dụng ta sử dụng Bndtool [18]. Ngoài Bndtool ra còn nhiều công cụ khác có thể giúp ta biên dịch các OSGi bundle nhưng qua tìm hiểu và theo quan điểm cá nhân thì Bndtool là sự lựa chọn tốt nhất để phát triển ứng dụng OSGi. Bndtool có thể được cài trong Eclipse dưới dạng plugin. Bndtool cung cấp giao diện thuận tiện cho việc chỉnh sửa file manifest và cũng hỗ trợ repository giống như Maven.
Hình 3.15: Phát triển ứng dụng với Bndtool
Repository trong Bndtool là nơi mà các bundle được lưu trữ và đánh index. Repository trong Maven cần sử dụng meta-data bên ngoài (file POM). Trong khi trong OSGi meta-data đã có sẵn trong bundle do vậy ta không cần thêm bất cứ meta-data nào khác. Với Bndtool ta có thể phát triển và chạy ứng dụng trực tiếp trên Eclipse cùng với Apache Felix và mỗi khi mã nguồn thay đổi nó sẽ được biên dịch và triển khai tự động và ta có thể nhìn thấy kế quả ngay tức thì. Hình 3.15 minh họa các project của ứng dụng sử dụng Bndtool. Mỗi Bndtool có thể build ra một hoặc nhiều bundle. Việc này được thiết lập bằng cờ Enable sub-bundles trong file bnd.bnd. Khi đó mỗi sub bundle sẽ có file bnd.bnd riêng và tên của bundle được đặt theo tên package. Để chạy ứng dụng trực tiếp trên Eclipse ta thực hiện như trong hình 3.16.
Tương tự để chạy một kiểm thử đơn vị ta click chuột phải vào unit test và chọn Bnd OSGi Test luncher (JUnit), kết quả như hình 3.17:
Hình 3.17: Kết quả chạy unit test
Ngoài ra ta cũng có thể build ứng dụng dưới dạng dòng lện thông qua Gradle. Cách này thích hợp khi ta sử dụng các hệ thống Auto-build như Jenkin.