를 구축 비트에 대한 비트 동일 메이븐과 :많은 제 3 자 종속성이 큰 응용 프로그램에 대한 프로젝트 요구 사항이 포함 된 경우
1) 소스에서 재현 할 수있는 구성 관리 시스템을 유지 비트 하나 동일 원래 빌드가 실행 된 후 25 년 동안 어떤 빌드의 사본 및
빌드를 컴파일 빌드 도구로2) 사용 Maven2와 에 해결 종속성
이러한 요구 사항을 충족하기 위해 어떤 절차를 따라야합니까?
를 구축 비트에 대한 비트 동일 메이븐과 :많은 제 3 자 종속성이 큰 응용 프로그램에 대한 프로젝트 요구 사항이 포함 된 경우
1) 소스에서 재현 할 수있는 구성 관리 시스템을 유지 비트 하나 동일 원래 빌드가 실행 된 후 25 년 동안 어떤 빌드의 사본 및
빌드를 컴파일 빌드 도구로2) 사용 Maven2와 에 해결 종속성
이러한 요구 사항을 충족하기 위해 어떤 절차를 따라야합니까?
25 년? 어디 론가 여기에 앉아있는 제 코모도어 64가 있다고 생각합니다.
진지하게 생각해 봅니다. 이것이 진정한 질문이라면, maven 중앙 저장소가 어느 시점에 미래가 없어집니다. Maven은 Maven 중앙 저장소에 크게 의존합니다.
또한 빌드를 만드는 데 사용 된 모든 도구 (메이븐 외에)도 아카이브해야합니다. 이상적인 빌드 프로세스는 다음 주이든 25 년이든 관계없이 언제든지 동일한 바이너리 파일을 생성합니다. 실제로는 빌드를 신뢰할 수있게 재현하지 못하게하는 많은 것들이 있습니다.
1) Maven 저장소 관리자를 사용하여 모든 종속성을 호스트하고 Maven 저장소의 내용을 백업하십시오.
2) 빌드를 만드는 데 사용 된 도구를 보관합니다. 기본적으로 maven과 jdk이지만, NSIS 나 Ant와 같은 다른 maven 플러그인을 사용하고 있다면 이들을 아카이브해야합니다. 플랫폼 별 바이너리 (NSIS 사용과 같은)를 만드는 경우 해당 도구 및 도구를 실행하는 데 사용 된 OS를 보관해야합니다.
3) 소스 코드 저장소를 보관하고 실행하는 데 필요한 소프트웨어도 함께 보관해야합니다.
1)의 경우, Maven 저장소 관리자의 정상 백업이면 충분합니까? 저장소 버전을 버전 화하고 저장소 버전을 소스 제어 버전과 일치시킬 수 있어야한다고 생각합니다. 그렇지 않으면 당신이 repo를 백업 한 상황에 부딪 히지 않고 종속성을 끌어 당기는 빌드를 실행하고, repo를 손상 시키며, 새로운 의존성이없는 백업을 복원 한 다음 다른 것을 얻으려고 할 때 의존성을 다시 끌어들이겠습니까? 25 년이 일부 비행 통제 시스템의 표준이었던 곳을 읽었습니다 ... – mattjames
Maven 저장소에 아티팩트 (즉, SNAPSHOT가 아닌 것)가 출시되어 있으면 버전 번호가 붙어서 출시되면 변경되지 않을 것으로 예상됩니다. 나는 이슈가 손상되면 문제의 이슈를 복원하고 전체 저장소를 다시로드하지 않을 것이라고 생각합니다. 출시 된 아티팩트를 리포에서 삭제하고 싶지는 않을 것입니다. BTW, 엄밀히 말하면 저장소 관리자는 실제로 필요하지 않습니다. 빌드 컴퓨터에 로컬 저장소의 백업을 보관할 수 있습니다. (비행 제어 시스템이 적어도 실시간 JVM을 사용하고 있기를 바랍니다.) –
또한 maven에서 빌드를 성공적으로 완료하면 필요한 모든 의존성을 로컬 저장소에서 사용할 수 있어야하므로 maven central이 빌드를 재현하는 데 아무런 문제가 없어야합니다. FWIW, 만약 내가 비행 통제 시스템처럼 비판적인 일을하고 있었다면 중앙 관리 센터에서 다운로드 한 인공물의 유효성에 대해 아마도 편집증이 될 것입니다 - 아마도 엄격히 통제 된 개인 저장소가 필요할 것입니다. 저장소 자체의 내용을 일종의 버전 제어 시스템에 넣기를 원할 수도 있습니다. –