Der Versuch, ein Juwel zu erstellen und ein Edelstein zu erhalten :: InvalidSpecificationException: „[…] sind keine Dateien“

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

  •  26-10-2019
  •  | 
  •  

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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top