Private composer-Pakete - keine gültige Komponist.json wurde gefunden
Ich versuche zu laden, eine Bibliothek, die ich habe, gehostet auf BitBucket mit Komponisten wie erläutert sowohl in der offizielle Dokumentation und hier, aber immer wieder erhalten die folgende Fehlermeldung:
[Composer\Repository\InvalidRepositoryException]
No valid composer.json was found in any branch or tag of [repository URL], could not load a package from it.
Hier ist mein Projekt Komponist.json:
{
"name": "Project name",
"require": {
"my-vendor/my-package": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": [repository URL]
}
]
}
Und hier ist der Komponist.json in meinem remote-repository (, die offenbar nicht gefunden werden kann):
{
"name": "my-vendor/my-package",
"version": "0.3",
"autoload": {
"psr-0": {
"NS_": "src"
}
}
}
Sollte ich noch erwähnen, dass beide Komponisten.json-Dateien sind im root-directory, wie Sie sein sollte.
Einige andere Dinge zu beachten:
Ich habe auch versucht die "nicht-Komponisten-Paket" - Ansatz, wobei ich das Paket angeben, Informationen in meinem Projekt Komponist.json-und auslassen der Komponist.json von meinem remote-repository, wie in der Dokumentation. Diese erfolgreichen Klonen des master-Zweiges, aber dann werden die Ergebnisse in der folgenden Fehlermeldung:
[RuntimeException]
Failed to execute git checkout "master" && git reset --hard "master"
fatal: Not a git repository (or any of the parent directories): .git
Jedoch, wird das Paket heruntergeladen /Verkäufer als erwartet, so bin ich nicht sicher, warum es ' s versucht, checkout master wieder.
Dies ist nicht die Art, wie ich wünschte, dieses problem zu lösen (da würde ich eher nutzen Komponist.json in das remote-repository), aber es könnte helfen, um ein Problem an anderer Stelle.
Vielen Dank für jede Hilfe.
BEARBEITEN
Habe ich es geschafft, es funktioniert durch den Verweis auf ein Paket.json über HTTP:
"repositories": [
{
"type": "composer",
"url": "http://localhost/packages.json"
}
]
Pakete.json sieht wie folgt aus:
{
"packages": {
"vendor/my-package": {
"dev-master": {
"name": "vendor/my-package",
"version": "dev-master",
"source": {
"url": [repository URL],
"type": "git",
"reference": "master"
}
}
}
}
}
Ist dies der einzige Weg, damit dies funktioniert? Es scheint ein bisschen übertrieben, meine host-eigenen Pakete.json-Datei, wenn ich nur mit ein oder zwei in-house-Lösungen.
Unabhängig, dies gibt mir die gleichen Git-Fehler, wie ich bereits erwähnt habe.
EDIT 2
Zwingt einen Fehler (Ungültiger SSH-passphrase) gibt dies:
[RuntimeException]
Failed to execute git clone "[repository URL]" "C:\workspace\DFv3\vendor\vendor/my-package" && cd /D "C:\workspace\DFv3\vendor\vendor/my-package" && git remote add composer "[repository URL]" && git fetch composer
Also ich kann deutlich sehen, was es hier tut. Allerdings scheint es nach dieser Befehl wird es cd
s in die .git
- Verzeichnis und versucht, Ausführung:
git checkout "master" && git reset --hard "master"
Vermutlich, um loszuwerden, der Komponist Instanz zog. Allerdings läuft diese im falschen Verzeichnis und ich kann nicht herausfinden, warum..
Komisch, die Fehler Meldung besagt, es sieht in allen Filialen. So oder so, der Meister hat den Komponisten.json-Datei.
Ist der master-branch als 'default-Zweig' (Der Platz, der beschrieben wird im stackoverflow.com/questions/14040754/...) ich habe noch nie jemanden gesehen haben, verwenden Sie die
"reference": "master"
vor.Yep, master eingestellt ist als der main-branch in Bitbucket. Wenn ich das weglasse "Verweis" erhalte ich eine Fehlermeldung, dass es erwartet, dass die "Quelle" auf die Eigenschaften "Typ", "url" und "Referenz".
InformationsquelleAutor James | 2013-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie keine
version
- Spezifikation in Ihrer Bibliothek Komponist.json, wenn es doch tatsächlich geschafft, indem Sie einen unterstützten source control system. Derzeit sagen Sie, daß Ihre master-branch IST die version 0.3 (die stabile version), aber Sie versuchen, Sie zu zählen "dev-master" (was ist eine instabile version). Komponist vielleicht verwirrt, wenn, die software ist wirklich "dev-master" oder "version 0.3".Wenn Sie tatsächlich der Entwicklung neuer releases für die 0.3.x-Serie in deinem master-branch, Sie sollten einen Zweig alias stattdessen. Fügen Sie diese zu Ihrem aktuellen Entwicklungszweig für die Versionen 0.3.x:
Wenn Sie wollen sich zu bewegen auf version 0.4 oder 1.0, man würde Zweigstelle in der "letzten" Zustand des 0,3-Serie mit einem branch namens "0.3.x" und aktualisieren Sie dann die Komponisten.json in der master-Zweig auf den Punkt dev-master, um einen neuen alias (wie
"dev-master": "0.4.x-dev"
). Man könnte auch die Namen Ihrer alten 0.3 Zweig wie auch immer Sie mögen und fügen Sie einen alias für diesen Zweig.Damit Sie verlangen, dass die neueste Entwickler-version von 0.3.x wie:
Diese ziehen die Letzte 0.3 version - derzeit wäre das der Letzte commit in den master branch weil der definierten alias.
Den Weg, Sie sind derzeit gesetzt, bis die Kräfte Sie explizit einschließen, version 0.3, die ist ein bewegliches Ziel, ohne dass diese Tatsache explizit bekannt.
Angabe einer expliziten version-tag sollte nur durchgeführt werden, wenn es keine versions-Kontroll-system zur Verfügung, das in der Lage ist zu geben, der Komponist der Versionsnummer, d.h. es gibt keine tags oder die tags nicht beachten, Komponisten Voraussetzung für die Versionsnummern. Da Sie scheinen, um die Kontrolle des vcs, ist es wahrscheinlich eine gute Idee, um die tags entsprechen Komponisten standard, anstatt es mühsam eine neue version zu veröffentlichen.
Nachdem Sie behoben, ich erwarte Ihre installation NICHT erforderlich, dass Paket.json Datei mehr, weil die Datei jetzt Reparaturen die Mühe, die Sie erstellt haben, die version der Erklärung. Sie würden dann auch nicht brauchen, die der Komponist Referenz mehr, kann aber wieder zurück zu erwähnen, das original-repository wie Sie es getan haben.
Wenn du das Gefühl hast, zu viele private repositories, die alle, die mehr private repositories, und die krank sind zu erwähnen, Sie alle in einer langen Liste, könnten Sie denken über die Verwendung Satis erstellen Sie eine solche Liste der gefundenen Pakete statt manuell erstellen.
InformationsquelleAutor Sven
Ich hatte den gleichen Fehler, nach dem löschen von Ordnern aus vcs funktioniert alles einwandfrei
Unter Windows (wie @Serbu vorgeschlagen):
InformationsquelleAutor tasmaniski
Habe ich es geschafft es zum laufen zu bringen, indem er auf eine
package.json
über HTTP:also die
packages.json
- Datei sieht wie folgt aus:Auch, Ihr scheint ein autorun-registry-Eintrag hatte ich für die Eingabeaufforderung sich mit dem Komponisten ausgeführt.
Finden Sie unter: Die eine private Bitbucket git repository nicht findet gültigen Komponist.json.
InformationsquelleAutor James
Ich weiß, das ist ein bisschen alt, aber für einige, die möglicherweise dieses Problem Auftritt, ist dies, wie es für mich funktioniert.
Klar, der Komponist cache.
composer clearcache
Erneut die satis build-Skript.
InformationsquelleAutor Aldee