양방향 라이브러리 사양


1. [필수] 다음 규칙을 준수하도록 GAV를 정의합니다.

1) G GroupID 형식: com.{Company/BU}.Business Line.[Sub-Business Line], 최대 4레벨.

설명: {Company/BU} 예: alibaba / taobao / tmall / aliexpress 등 BU 레벨 1은 선택 사항입니다.

긍정적인 예: com . taobao . jstorm 또는 com.alibaba.dubbo.register

2) ArtifactID 형식: 제품 라인 이름-모듈 이름. 의미는 반복되거나 생략되지 않습니다. 먼저 창고 센터에 가서 확인하세요.

긍정적인 예: dubbo - client / fastjson - api / jstorm - tool

3) V 버전: 자세한 규정은 아래를 참조하세요.


2. [필수] 타사 라이브러리 버전 번호 지정 방법: 주요 버전 번호

#🎜 🎜 #1) 메이저 버전 번호 메이저 버전 번호: 호환되지 않는 API 수정이 이루어졌거나 제품 방향을 바꿀 수 있는 새로운 기능이 추가된 경우.

2) 마이너 버전 번호 마이너 버전 번호: 이전 버전과 호환되는 기능 추가(새 클래스, 인터페이스 등)로 간주됩니다.

3) 개정 번호 개정 번호: 버그 수정, 메서드 시그니처 수정 없이 기능 향상, API 호환성 유지.

참고: 시작 버전 번호는 0.0.1이 아닌 1.0.0이어야 합니다.


3. 온라인 애플리케이션은 SNAPSHOT 버전에 의존해서는 안 됩니다(보안 패키지 제외). 공식적으로 출시된 클래스 라이브러리는 RELEASE

버전 번호 업그레이드 +1 방법을 사용해야 하며 버전 번호를 덮어쓰거나 업그레이드할 수 없으며 반드시 중앙창고에서 확인받으세요.

참고: SNAPSHOT 버전에 의존하지 않으면 애플리케이션 릴리스의 멱등성이 보장됩니다. 또한 컴파일하는 동안 패키징 및 구성 속도도 높일 수 있습니다.


4. [필수] 타사 라이브러리를 추가하거나 업그레이드하면 기능 포인트를 제외한 다른 jar 패키지의 중재 결과가 변경되지 않습니다. 변경 사항이 있는 경우

을 명확하게 평가하고 확인해야 합니다. 종속성 전후의 정보를 비교하는 것이 좋습니다. 중재 결과가 완전히 다른 경우 을 사용합니다. : 차이점을 찾으려면 트리 명령을 클릭하고 < 제외 >를 선택하여 jar 패키지를 제외하세요.


5. [필수] 타사 라이브러리는 열거형을 정의할 수 있고 매개변수는 열거형을 사용할 수 있지만 인터페이스는 value

열거형 유형 또는 열거형 유형을 포함하는 POJO 객체의 사용은 허용되지 않습니다.


6 [필수] 타사 라이브러리 그룹에 의존하는 경우 버전 번호를 피하기 위해 통합 버전 변수를 정의해야 합니다. 불일치.

설명: springframework에 따라 - 코어, - 컨텍스트, - Bean은 모두 동일한 버전이므로

변수를 정의하여 버전을 저장할 수 있습니다: ${ spring version }. 이 버전을 인용할 때 종속성을 정의하세요.


7 [필수] 동일한 GroupId, 동일한 ArtifactId를 갖는 것은 금지되지만, 🎜🎜 #버전 .

참고: 로컬에서 디버깅하는 경우 각 하위 프로젝트에서 지정한 버전 번호가 사용되지만, 전쟁에 병합되면 최종 lib 디렉터리에 하나의 버전 번호만 나타날 수 있습니다. 오프라인 디버깅은 정확했지만 온라인으로 출시되었을 때 문제가 발생한 선례가 있었습니다.


8. 모든 pom 파일의 종속성 선언을 < dependency > 문 블록에 배치하고 모든 버전 중재를 <

참고: < dependencyManagement >는 버전만 선언하고 소개를 구현하지 않습니다. 따라서 하위 프로젝트는 상위 pom에서 종속성을 명시적으로 선언해야 합니다. 그리고 < 종속성 > 기본 pom의 < 종속성 >에 선언된 모든 종속성은 기본적으로 모든 하위 프로젝트에 자동으로 도입되고 상속됩니다.


9. [권장 사항] 타사 라이브러리는 구성 항목을 갖지 않도록 노력해야 하며, 최소한 더 이상 구성 항목을 추가하지 않아야 합니다.


10. [참고] 타사 라이브러리 적용 시 종속성 충돌을 피하기 위해 타사 라이브러리 게시자는 다음 원칙을 따라야 합니다.

1) 단순성과 제어 가능성의 원칙. 서비스 API, 필수 도메인 모델 개체, Utils 클래스, 상수, 열거형 등을 포함하여 불필요한 API 및 종속성을 모두 제거합니다. 다른 타사 라이브러리에 의존하는 경우 타사 라이브러리 사용자가 특정 버전 번호를 사용할 수 있도록 제공된 라이브러리를 도입해 보세요. 특정 로그 구현은 없으며 로그 프레임워크에만 의존합니다. .

2) 안정적인 추적성 원칙. 각 버전의 변경 사항을 기록해야 하며, 누가 타사 라이브러리를 유지 관리하는지, 소스 코드가 있는 위치는 모두 쉽게 액세스할 수 있어야 합니다. 사용자가 적극적으로 버전을 업그레이드하지 않는 한 공개 타사 라이브러리의 동작은 변경되어서는 안 됩니다.