Der Versuch, ein Juwel zu erstellen und ein Edelstein zu erhalten :: InvalidSpecificationException: „[…] sind keine Dateien“
Frage
Ich versuche, ein benutzerdefiniertes Juwel aufzubauen, das ich geschrieben habe, den ich geschrieben habe client_package
Aber es scheitert.
Meine Verzeichnisstruktur sieht so aus:
client_package
Gemfile
Gemfile.lock
client_package.gemspec
Rakefile
Readme.md
.gitignore
.git
...git files...
lib
client_package.rb
client_package
version.rb
api.rb
...more...
Und meine client_package.gemspec
sieht aus wie das:
# encoding: UTF-8
require File.expand_path('../lib/client_package/version', __FILE__)
Gem::Specification.new do |s|
s.name = 'client_package'
s.version = ClientPackage::VERSION
s.platform = Gem::Platform::RUBY
s.files = `git ls-files`.split('\n')
s.executables = `git ls-files -- bin/*`.split('\n').map{ |f| File.basename(f) }
s.require_paths = ['lib']
# also have s.authors, s.email, s.homepage, s.summary, s.description
s.add_dependency 'httparty'
s.add_dependency 'json'
end
Und alle meine Dateien sind begangen und der Git -Status ist sauber.
Von innerhalb der Spitze client_package
Verzeichnis, ich renne gem build client_package.gemspec
und erhalten Sie diesen Fehler:
ERROR: While executing gem ... (Gem::InvalidSpecificationException)
[".gitignore
Gemfile
Rakefile
Readme.md
client_package.gemspec
lib/client_package.rb
lib/client_package/api.rb
lib/client_package/version.rb
lib/client_package/...more...
"] are not files
Das ist für mich rätselhaft, denn das scheinen mir sicherlich Dateien zu sein. Wie auch immer, ich dachte, es gibt ein Pfadproblem, wenn es diese Dateien nicht sieht, und nur ein paar Versuche und Irrtümer habe ich festgestellt, dass, wenn ich ein Verzeichnis steige (eines über der obersten Ebene client_package
) und dann rennen gem build client_package/client_package.gemspec
es tut Scheinen zuerst zu funktionieren und die Datei zu erstellen client_package-1.0.0.gem
. Aber etwas stimmt immer noch nicht. Wenn ich dieses Juwel mit installiere gem install client_package-1.0.0.gem
Das scheint auch zu funktionieren. Aber dann das:
require 'rubygems'
require 'client_package'
Kehrt zurück LoadError: no such file to load -- client_package
.
Ich habe das Gefühl, dass mir etwas Kleines, aber Wichtiges fehlen muss. Irgendwelche Ideen?
Lösung
Dies wäre klein, aber wichtig:
Sollte split('\n')
sein split("\n")
?
Weil es aussieht wie
[".gitignore
Gemfile
Rakefile
Readme.md
client_package.gemspec
lib/client_package.rb
lib/client_package/api.rb
lib/client_package/version.rb
lib/client_package/...more...
"]
könnte ein Array sein, das eine einzelne Multilin -Zeichenfolge enthält, nicht ein Array von mehreren Zeichenfolgen.
Andere Tipps
Ausreden für die Wiederbelebung dieses alten Thread Juwel.
Überprüfen Sie die Dateien und dieser genaue Fehler ist vorbei.