의미 체계 버전 번호 매기기에 대한 우수 사례는 https://semver.org/에서 찾을 수 있습니다.
공용 라이브러리를 별도의 번들로 팩토링해야 합니다. 그러면 번들에서 재사용할 수 있습니다. OSGI 번들에 JAR을 배치할 때는 온라인 소스를 확인하여 전에 이미 이 작업을 수행했는지 확인하십시오. 기존 번들 래퍼를 찾을 수 있는 몇 가지 일반적인 위치는 다음과 같습니다.Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Eclipse Bundle Recipes 및 SpringSource Enterprise Bundle Repository입니다.
POM 파일의 컴파일 타임 종속성의 경우 항상 필요한 API를 노출하는 가장 낮은 필수 버전에 따라 달라집니다. 이전 버전과의 호환성이 향상되고 이전 릴리스에 대한 백업 수정 작업이 더 쉬워집니다.
패키지를 내보내자마자 다른 사람이 신뢰할 수 있는 API를 만들었습니다. 가능한 한 적게 내보내고 내보낼 내용이 API인지 확인합니다. 이전에 내보낸 것을 가져와서 비공개로 만드는 것보다 비공개 메서드/클래스를 사용하고 그것을 공개하는 것이 훨씬 쉽습니다.
구현은 항상 별도의 impl 패키지에 있어야 합니다. 기본적으로 maven-bundle-plugin은 프로젝트의 이름에 impl이 없는 모든 것을 내보냅니다.
그러면 API 소비자가 자신과 함께 진화할 수 있습니다. 이때 항상 의미 체계 버전 관리 우수 사례를 따릅니다. 이렇게 하면 API 소비자가 새로운 버전에 대한 변경 사항 유형을 알 수 있습니다.
의미 있는 메타데이터 정보를 지정하면 Felix 콘솔에서 서비스 및 구성 요소를 쉽게 이해할 수 있습니다. SCR 주석 및 속성의 목록은 다음 위치에 있습니다.https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html.