Определение зависимостей Gemspec и требует конфликта

StackOverflow https://stackoverflow.com/questions/6821551

  •  26-10-2019
  •  | 
  •  

Вопрос

У меня есть конфликт между Определения зависимостей драгоценных камней и требовать из этих драгоценных камней.

У меня есть это:

# Gemfile
source "http://rubygems.org"
gemspec

-

# my_gem.gemspec
$:.push File.expand_path("../lib", __FILE__)
require "my_gem"

Gem::Specification.new do |s|
  s.version = MyGem::VERSION
  # ...
  s.add_dependency "s3"
end

-

# /lib/my_gem.rb
require 'rubygems'
require 's3'

Линия конфликта - это S3 Требование Потому что, когда я выполняю bundle install Он жалуется, потому что этот драгоценный камень еще не установлен.

Обходной путь состоит в том, чтобы прокомментировать это требуется, затем выполнить bundle install и не понаправду, что снова не очень красиво.

Любое предложение приветствуется, если вам нужна более подробная информация, чтобы понять проблему, пожалуйста, скажите мне.

Это было полезно?

Решение

Во -первых, не требуйте всего своего драгоценного камня в своем Gemspec. Переместите информацию о вашей версии на путь, такой как «lib/my_gem/version.rb», и требуют этого. Во -вторых, вы не должны делать «потребовать» рубигем », если вы не используете API Rubygems для какой -то функции. Есть некоторые пользователи, которые не используют Rubygems, и вы не должны заставить их использовать его, если это необходимо.

Другие советы

1.- Не требуйте «Rubygems» в библиотеке. Похоже, если программа UNIX требует apt-get, поэтому никакая другая система не может использовать вашу библиотеку.

2.- В библиотеке поместите вашу версию в отдельный файл /LIB/LIB_NAME/VERSHOIN.RB и требуйте этого файла на GEMSPEC. Только этот файл, так что вы не загружаете свою библиотеку и зависят от загрузки Gemspec.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top