2013-05-10 5 views
6

CI 도구를 조사하면서 많은 CI 설치가 SonaType Nexus 및 JFrog Artifactory와 같은 아티팩트 저장소에도 통합되어 있음을 발견했습니다.Artifactory 또는 Nexus의 요점은 무엇이며 어떻게 활용할 수 있습니까?

이러한 도구는 Maven에 고도로 통합되어 있습니다. Maven을 사용하지 않으며 Java를 컴파일하지도 않습니다. Qt/qmake/make를 사용하여 C++을 컴파일하면이 빌드가 실제로 잘 작동합니다. 우리는 여전히 CI 도구를 조사하고 있습니다.

아티팩트 저장소 사용의 요지는 무엇입니까?

Nexus 또는 Artifactory (또는 Archiva)에 대한 보관은 Google의 연결 고리 또는 CI 체인의 한 단계로 간주됩니까? 아니면 둘 중 하나 일 수 있습니까?

"make"빌드 또는 perl/bash/batch 스크립트가 어떻게 상호 작용할 수 있습니까?

+0

@Slaks, 왜 그게 사실입니까? 자바 개발자를 위해 무엇을 얻고 있습니까? – macetw

+1

@SLaks 그건 poppycock이야. 바이너리 저장소 관리자는 바이너리를 생성하거나 사용하는 모든 개발자에게 유용합니다. WAR, Debs, RPM, DLL 등이 될 수 있습니다. – noamt

+0

이 링크는 도움이 될 수 있습니다. http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix – sorin

답변

9

아티팩트 저장소에는 여러 가지 용도가 있습니다. 주된 목적은 빠른 다운로드 시간을 가진 maven central (또는 다른 maven repo) 사본을 가지고 인터넷이 다운 된 경우에도 maven을 사용할 수 있도록하는 것입니다. Maven을 사용하지 않기 때문에 이것은 당신과 관련이 없습니다.

두 번째 목적은 종속성으로 사용할 파일을 저장하는 것이지만 인터넷에서 자유롭게 다운로드 할 수는 없습니다. 그래서 당신은 그것들을 사거나 당신의 판매 인에게서 그것들을 가져 와서 당신의 repo에 넣습니다. 이것은 maven 사용자와 의존성 메커니즘에 더 적용 가능합니다.

세 번째 중요한 목적은 출시를 저장할 수있는 중심적인 방법입니다. 따라서 v1.0 릴리스를 빌드하면 해당 저장소에 업로드 할 수 있으며 v1.0을 찾는 방법을 알기 쉽고 다른 모든 도구와 함께 사용하는 방법을 쉽게 알 수 있습니다. 따라서 wget으로 릴리스를 다운로드하고 호스트에 설치하는 스크립트를 작성할 수 있습니다.

대부분의 경우 이러한 저장소에는 스테이징 프로세스가 있습니다. 따라서 스테이징에서 v1.0을 저장소에 저장할 수 있습니다. 누군가 테스트를 수행하고 괜찮 았을 때 릴리스 레포로 승격하면 모두가 찾아서 사용할 수 있습니다.

Maven 프로젝트와 통합하기가 쉽고 다른 빌드 도구 프레임 워크가 많기 때문에 개미, 그루비 포도 등 쉽게 연결할 수 있습니다. 이름 지정 스키마 때문에 bash 또는 perl을 사용하여 파일을 다운로드/업로드하는 데 제한이 없습니다.

프로젝트간에 공유해야하는 파일이나 릴리스가 있다면 좋은 해결책이 없습니다. 인공 지능 저장소가 어떻게 작동하는지 확인하는 좋은 출발점이 될 수 있습니다.

+1

Artifactory와 Nexus Java 바이너리를 .NET 바이너리 및 Debs 및 RPM으로 지원합니다. – noamt

+0

"나는 Maven 프로젝트와 Maven 종속성의 필요성에 가장 잘 부합하도록 설계되었습니다."라는 주장에 정말로 동의하지 않습니다. Nexus의 경우에도 마찬가지지만 Artifactory는 도구 및 기술을 불가지론 적으로 구현하고 있으며 거의 ​​모든 빌드 도구에서 훌륭하게 작동하며 사용자가 아티팩트 레이아웃을 제어 할 수있게하여 서버를 구축합니다. 그것은 또한 Gradle, Ivy, P2, .NET, RPMs 등을위한 내장 기능을 가지고 있습니다. – JBaruch

+0

거의 모든 것을 가지고 사용할 수 있다는 것을 분명히하기 위해 텍스트를 약간 변경했습니다. 인공물 저장소 연결. 이 문제는 대부분의 도구가 Maven의 settings.xml을 읽지 않으며 repo에 연결하기위한 특별한 설정 파일이 필요하다는 사실을 기반으로합니다.그러나 이것은 부적절한 이유입니다. maven은 질문에 전혀 사용되지 않으며 bash/perl의 경우 구성이 어쨌든 수행되어야합니다. 그래서 나는 그것을 제거했다. – mszalbach