2014-06-05 4 views
7

GitHub에 새 Java 프로젝트를 설정 중이며 Apache Commons 라이브러리를 종속 파일로 사용할 예정입니다.GitHub의 Jar 종속성

내 프로젝트를 수립하는 모범 사례는 무엇입니까 이러한 jar 파일이 필요합니까? GitHub 저장소 (추한)에 의존성을 업로드해야합니까? 또는 use a Maven-like tool for that?

다른 git 저장소에 파일을 링크하는 방법이 있습니까? Apache provides git repositories for they libraries. 그들은 읽기 전용이지만, 나는 o.k입니다. 그것과 함께, 단지 을 사용하고 있기 때문에 단지를 사용하십시오. 나쁜 점은 모든 소스를 포함하고 컴파일 된 항아리에만 관심이 있다는 것입니다. It seems 우리는 git submodule 그냥 파일 수 없습니다.

답변

5

두 가지 방법은 다음과 같습니다

  • 선언컴포넌트 기반 당신이 (설명) 선언한다를, 당신이 프로젝트에 필요한 구성 요소 (항아리, EXE, 다른 바이너리) (컴파일 (예 : Maven/Nexus과 같은 타사 도구를 사용하여 필요에 따라 구성 요소를 가져올 수 있습니다.
    그래서 귀하의 리포에서 버전이 지정되지 않았습니다. 그것들은 선언/기술되어 있습니다 (Nexus를 사용한다면, pom.xml과 같습니다)
    "Difference between Git and Nexus?"도 참조하십시오.

  • 포함당신이 바로 복제 단계 (A 서드를 호출 할 필요 후 필요 당신의 repo 모든 일에 얻기 위해, 다른 프로젝트 소스/바이너리와 프로젝트를 완료을, 시스템 기반 타사 도구 또는 다른 작업을 수행 할 수 있습니다.
    힘내, 특히 그 "다른 부분"이 자식 레포 (예 : apache libs one)에있는 경우 하위 리포지를 기본 저장소의 submodules으로 선언하십시오.
    그런 식으로 주 repo에서 유지하는 것은 다른 repo의 특정 SHA1을 참조하는 special entry (gitlink, mode 160000)입니다 (단, 외부의 svn과 비슷한 submodule follow a branch too이 될 수 있습니다).
    sparse checkouts in submodules (this example처럼)을 사용하면 원하는 모듈 (예 : 항아리가 아니라 소스) 만 체크 아웃 할 수 있습니다.

GitHub 저장소에 생성 할 배달 물 (예 : 사용자가 사용하는 jar 파일)을 저장하지 않아도된다는 것에 유의하십시오.

GitHub releases까지 전달할 수 있습니다.