2017-12-21 31 views
1

나는 Git 저장소에 의해 제어되는 NetBeans 프로젝트를 가지고있다. 하나의 GitHub 프로젝트를 의존성으로 사용하고 있습니다. 프로젝트를 시작했을 때, Git에 익숙하지 않았기 때문에 종속성을 복제하고 소스 코드를 가져 와서 패키지로 만들었습니다.git submodules를 NetBeans 8.1로 가져 오는 방법은 무엇입니까?

이제 Git에 대한 경험이 조금 더 많아 졌으므로 의존성을 git 하위 모듈로 사용하고 싶습니다. 사용하고, 쉽게 업데이트하고, 모든 것을 한 곳에서 가질 수있게합니다. 최종 사용자 (내 프로젝트가 API 인 경우) 종속 프로젝트를 부 프로젝트로 복제 할 필요가 없습니다.

서브 모듈이 the SVN guide에서 발견되었습니다. 그래서 새 분기를 만들고 종속 패키지를 삭제하고 하위 모듈을 초기화 한 다음 NetBeans를 열었습니다. NetBeans는 단지 그것을 보지 못합니다.

하위 모듈이 라이브러리 목록과 같은 일부 장소에 나타날 것으로 예상했지만 분명히 존재하지 않습니다.

NetBeans 포럼에 대한 연구를 마친 후 필자는 설명서에 서브 모듈을 언급하지 않았 음을 확인했습니다.

그래서 NetBeans에서 하위 모듈을 사용할 수 있습니까? 나는 복잡한 것을 찾지 않고 단지 프로젝트와 의존성을 분리 해두고있다. 의존성을 컴파일하는 것 이외의 다른 일을 할 계획은 없지만 (가능하다면 수정하지 않아도됩니다.) 가능하면이 행할 수 있습니다. NetBeans에서 이것이 가능하지 않다면이 목표를 달성하기 위해 가장 가까운 것은 무엇입니까? 내 문제는 자식 (망할 놈의 명령 행에서 오지 않는다, The project I'm talking about (GitHub), 확인 후 the dependency (GitHub)

[편집] :

관련 링크를 (내가 메이븐에 대해 들어 있지만, 무엇이든지 그것이 무엇인지에 대한 지식이없는 한) 하위 모듈은 프로젝트 폴더에서 초기화해야 함) 초기화되지만 NetBeans 구성 문제 인 것 같습니다. 오류 (모든 가져 오기에서 "패키지 ... 찾을 수 없음")를 기반으로 NetBeans는 서브 모듈의 소스를 찾을 수있는 위치를 알 수 없다고 생각합니다. IDE에서 'libraries'폴더를 마우스 오른쪽 버튼으로 클릭 한 다음 '프로젝트/폴더 추가'를 클릭하여 라이브러리에 수동으로 하위 모듈을 추가하려고했습니다. 하위 모듈의 여러 폴더에 대해이 작업을 시도했지만 NetBeans에서 소스를 찾을 수있는 것으로 보이지 않습니다. Here is the link to the dependency, maybe there's something specific about how the folders are laid down, I don't know. (from GitHub)

답변

1

NetBeans 8.2부터 기본적으로 지원되는 서브넷 모듈. NetBeans 8.1, 그들이 아니 었어, 내가 어떻게 그들을 사용하는 관리 :

내 문제는 내 명령 줄에 아니었다; 당신은 여기에 대한 정보를 찾을 수 있습니다 그것이 있어야되었을 때 서브 모듈이 초기화 된 것을 확인한 후 submodule tutorial on the SVN guide

, 내가 다음 단계에 따라 :

  1. 열기 넷빈즈 "프로젝트"탭에서
  2. 을, 마우스 오른쪽 단추로 클릭 한 서브 모듈의 SRC/폴더를 선택 선택 "폴더 추가", "속성"은 "소스"에
  3. 이동 선택한 프로젝트에
  4. 을 탭을

하위 모듈을 라이브러리로 만들지 않고 대신 NetBeans가 해당 하위 모듈을 사용자 코드의 일부로 생각합니다. 필자의 경우에는 충분하지만이 점을 지적하고자합니다.

또한 이전 가져 오기가 모두 손상 될 수 있습니다 (패키지 이름이 변경되었을 수 있음).

이 솔루션은 해킹 된 느낌이 들기 때문에 누군가 NetBeans를 하위 모듈을 라이브러리로 인식하는 방법을 설명해 주도록 기꺼이 설명 하겠지만, 한편으로는 이것이 여전히 도움이 될 수 있다고 생각합니다.

+0

글쎄, 내 대답보다 더 정확한. +1 – VonC

1

git 명령이 NetBeans GUI에서 직접 작동하지 않더라도 하위 모듈을 NetBeans와 함께 사용할 수 있습니다 (bug 271489 참조).

적어도, 변경 그러나

(bug 207067)

감지해야한다, 넷빈즈없이 시작합니다 (디스크에) 당신의 작업 트리에서

  • , 새 지점을 체크 아웃과 함께, 귀하의 서브 모듈을 추가 (당신의 의존성 소스가있는 다른 Git repo의 URL을 선언하는 것입니다)
    메인 레포를 추가, 커밋 및 푸시하는 것을 잊지 마십시오.

다시 복제 (git clone -b yourBranch --recursive) : 메인 repo를 복제하고 서브 모듈 컨텐츠를 모두 초기화합니다.

NetBeans를 열고 모든 항목이 표시되는지 확인하십시오.

+0

나는 명령 줄에 아무런 오류도 표시하지 않았다. 그러나 NetBeans에서 하위 모듈은 "library"폴더 나 어느 곳에서도 표시되지 않으며 모든 가져 오기가 NetBeans에서 손상됩니다 ("package minimaljson does not exist"). 필요한 프로젝트 파일의 구성이 있습니까? – CLOVIS

+0

@CLOVIS "명령 행에 아무런 오류도 보이지 않습니다.": 그러나'git clone -b yourBranch --recursive' 명령으로 서브 모듈 하위 폴더를 올바르게 작성 했습니까? – VonC

+0

예, 하위 모듈의 전체 GitHub 데이터를 포함하는 프로젝트의 루트에 폴더가있어 NetBeans에 경로가 없다고 생각하게합니까? (NetBeans 8.1을 실행 중입니다.) – CLOVIS