2011-04-27 4 views
12

github에 spree 저장소를 포크하고 내 레일 앱의 Gemfile에 core 하위 디렉토리에있는 보석을 지정하고 싶습니다. 주 저장소.Gemfile에서 Git 저장소의 하위 디렉토리에있는 .gemspec을 지정하는 방법

gem 'spree-core', :git => 'git://github.com/spree/spree.git' 

문제는 내가 갖는 것입니다 :

저장소의 폴더 구조는 다음과 같다 : 즉

|~spree     [git root] 
| |-spree.gemspec   [spree gem located here] 
|~core 
| |-spree_core.gemspec [spree_core gem located here] 

을, 나는이 라인을 따라 뭔가를하고 싶습니다 시도 할 때 다음과 같은 오류 메시지가 표시됩니다.

git에서 'spree-core (> = 0) /github.com/spree/spree.git (마스터에서). 소스의 버전 '마구 코어를 (> = 0)'

답변

5

은 무엇 당신이 할 수있는 것은 오직 core 하위 디렉토리 및 관련 spree_core.gemspec 파일이 포함 된 REPO를 만드는 것입니다 포함되어 있지 않습니다. 이것은 또한 더 얇은 설치로 이어질 것입니다. 이 spree_core/spree_core.gemspec 기대된다 자식 저장소에서 설치하는 bundler의 능력이 나타납니다

gem 'spree-core', :path => 'vendor/gems/spree/core' 

다소 the documentation에 따라 제한 될 : 당신은 또한 당신의 응용 프로그램과 함께 번들이처럼 배포 할 디렉토리의 내용을 잡을 수 있습니다 대신 core/spree_core.gemspec이 아닙니다.

대부분의 사람들이 공식적으로 출판 된 보석 이외의 것을 설치하는 것을 기대하지 않기 때문에 보석 제작자 측의 이러한 감독은 일반적입니다. 적어도 프로젝트의 일부가 많은 사람들을 놀라게 할 정도는 아니기 때문에 .gemspec 파일을 사용할 수 있다는 점이 좋습니다.

4

이것은 Google 검색에서 처음 나온 것이고 주어진 답은 정확하지 않거나 번들러의 행동이 바뀌 었습니다.

OP에는 맞춤법 오류가있어서 오류가 원래 문제와 일치하는 것처럼 보입니다. 특히 spree-core은 하이픈으로 연결되어서는 안됩니다.

다음은 잘 작동합니다 :

gem 'spree_core', github: 'spree/spree' 
관련 문제