문제

Maven과 Nexus를 기반으로 한 다른 도구 중에서도 Java 응용 프로그램을위한 소규모 소프트웨어 엔지니어링 환경 (참조)을 성공적으로 만들었습니다. 나의 실제 문제는 정말 놀랍지 않은 것입니다. Nexus는 일반적으로 중앙 저장소에서 요청 된 아티팩트를 얻기 위해 인터넷에 액세스해야한다는 것입니다. 그러나 SEE는 엄격하게 오프라인이어야하며 변경할 방법이 없습니다 (.. 보안상의 이유).

첫 번째 빠른 솔루션은 인터넷에 연결된 기계의 Nexus/Maven 설치를 미러링하고, 일부 표준 POM을 실행하여 미러링 된 넥서스를 채우고 CD-ROM을 통해 캐시를 대상 시스템으로 마이그레이션하는 것이 었습니다. 아주 못생긴. 나는 아티팩트 나 새로운 것들에 대한 업데이트를 얻기 위해 그 프로세스를 조정하기를 기대하지 않습니다. 실제로, 우리는 일반적으로 우리가 필요한 라이브러리를 가져오고 중앙 및 기타의 공식적인 것을 사용하여 새로운 아티팩트 (Nexus와 함께)를 만듭니다.

누구든지 같은 도전에 직면하고 더 영리하고 효율적인 접근 방식을 찾은 적이 있습니까?

편집하다

모든 답변에 감사드립니다. 실제 문제와 내가 생각하고있는 솔루션에 대해 더 정확해야한다고 생각합니다. 중심을 기반으로 개인 '중앙'저장소를 만들고 채워서 동기화해야한다고 생각합니다. 인터넷의 다른 저장소 또는 정확히 다음과 같습니다. 두 개의 동일한 저장소. 하나는 로컬 네트워크에서 인터넷에 연결되어 있습니다. 그런 다음 인터넷에 연결된 저장소를 '최신'로 유지하고 DVD를 통해 변경 사항을 Nexus에서 볼 수있는 로컬 저장소로 복사 할 수 있습니다.

작동할까요? 개인 서버에서 'Central'과 같은 것을 설정하는 방법에 대한 설명서가 있습니까? 선택한 아티팩트를 동기화하는 메커니즘이 있습니까?

(완전히 다른 아이디어를 얻고 싶었 기 때문에 처음에 내 생각을 게시하고 싶지 않았습니다)

편집 2- "모범 사례" - 요청시 추가

인터넷에서 완전히 분리 된 환경에서 Maven을 사용하기위한 "모범 사례":

  • 우리는 중앙 서버에 Nexus를 설치하여 소프트웨어 개발 워크 스테이션에 문의 할 서버가있었습니다 (그리고 우리의 인공물 저장소였습니다).
  • POM 파일을 인터넷 액세스로 워크 스테이션으로 내보내고 해당 시스템의 로컬 저장소를 지우고 dependency:go-offline (플러그인). 이것은 모든 필요한 artedfacts로 로컬 저장소를 채웠습니다
  • 이 로컬 리포지토리를 보안 환경으로 가져 와서 모든 플러그인을 Nexus에 추가했습니다 (파일을 복사했습니다 - 구조가 동일합니다)

모든 POM 파일 (자동화 할 수 있음)으로 일주일에 한 번이 작업을 수행하면 매우 안정적이고 유용한 로컬 저장소가 있습니다.

도움이 되었습니까?

해결책

작동할까요? 개인 서버에서 'Central'과 같은 것을 설정하는 방법에 대한 설명서가 있습니까? 선택한 아티팩트를 동기화하는 메커니즘이 있습니까?

글쎄, 당신은 A가 될 수 있습니다 거울 중앙의 경우, ~ 10GB의 유물을 잡는 요점은 무엇입니까? 당신은 그들 모두가 필요하지 않으며 일반적인 권장 사항은 저장소 관리자를 사용하는 것입니다.

실제로 나의 초기 생각은 다음과 같습니다.

  1. SEE 외부 인터넷에 연결된 넥서스를 사용하십시오.
  2. rsync 이 넥서스의 내용은 DVD에 대한 내용.
  3. 내용을 DVD를 통해 SEE의 넥서스에 복사하십시오.
  4. 주기적으로 반복하십시오.

이 솔루션이 추악하다는 것을 알았지 만 이제는 귀하의 상황에 대한 자세한 내용이 있으므로 허용 가능할 수 있습니다.

다른 팁

네트워크의 일부가 인터넷이나 다른 네트워크에 액세스 할 수없는 네트워크 환경에서 일했습니다. 이 네트워크 내에서 소프트웨어를 업데이트해야 할 때마다 다음을 수행했습니다.

  1. 업데이트 된 소프트웨어 업로드 "보안"호스트 (STEP Stone)
  2. 그물에서 스텝 스톤을 분리하십시오
  3. 스텝 스톤을 연결하여 그물을 고정하십시오
  4. 업데이트 된 소프트웨어를 저장소로 푸시합니다
  5. 안전한 그물에서 스텝 스톤을 분리하십시오

네트워크를 적절하게 연결하고 분리하도록 스위치를 자동으로 구성 하여이 프로세스를 완전히 자동화했습니다 (따라서 항상 물리적 연결이 있었지만 사용 가능한 IP 연결은 없었습니다). 어쩌면 당신은 비슷한 일을 할 수 있습니다 - 그것은 단지 "분리 된"의 정의의 유연성에 달려 있습니다;)

나는 환경에서 비슷한 문제에 직면했다.

일반적으로 Nexus를 호스팅하는 서버는 인터넷에 액세스 할 수 없습니다. 그러나 나는 운영 팀을 만나서 Nexus가 인터넷에서 아티팩트를 자동으로 다운로드 할 수있게하는 것이 우리에게 큰 생산성이기도하다고 설명했습니다.

그들이 우리의 요구를 이해하면 OPS는 서버가 Central Maven 저장소와 같은 인터넷 IP의 매우 엄격한 화이트리스트에 액세스 할 수 있도록 허용했습니다. 따라서 외부 리포지토리 IP 주소가 변경 될 때 새로운 저장소를 추가하거나 화이트리스트 수정을 수행하기 위해 OPS를 통과해야합니다. 그러나 전반적으로 우리는 그것이 보안과 생산성 사이의 최선의 타협이라고 생각했으며 그것은 우리에게 효과적입니다.

이해 관계자가 네트워크를 인터넷에 인터넷에 연결하여 매우 제한된 화이트리스트 전용 방식으로 진행되면 어떻게 해야하는지 확인하면 어떻게 해야하는지 반복하면 생산성을 높이고 궁극적으로 모든 사람의 시간을 절약 할 수 있습니다.

Nexus Pro의 조달 기능은이 사용 사례를 처리하도록 정확하게 설계되었습니다.

조달이란 무엇입니까?

조달 스위트 사용자 안내서

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top