2016-04-20 10 views
9

ich eine Verzeichnisstruktur wie so haben:Kann nicht Komponist "Pfad" Repository arbeiten

composer.json < Main 
    packages/ 
    balunker/ 
     testpackage/ 
     composer.json < Package 
     src/ 
      TestPackage.php 

Der Haupt composer.json sieht wie folgt aus:

{ 
    "name": "vagrant/composer-test", 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "packages/*/*" 
     } 
    ], 
    "require": { 
     "balunker/testpackage": "*" 
    } 
} 

Während das Paket composer.json wie so aussieht :

{ 
    "name": "balunker/testpackage", 
    "autoload": { 
    "psr-4": { 
     "Balunker\\": "src/" 
    } 
    } 
} 

Auf composer update eine Nachricht, dass das Paket co ich einfach erhalten und nicht gelöst werden. Es werden keine Symlinks erstellt und kein Paket installiert. Ich habe buchstäblich den halben Tag damit verbracht, dies herauszufinden, ohne Erfolg.

Ich lud auch eine composer update -vvv ausführliche Ausgabe von diesem: http://pastebin.com/mMRHsACk.

Meine Composer-Version ist die neueste (Stand 20. April 2016 um 14:39 Uhr UTC) und das alles läuft in Vagrant (Debian).

Jede Empfehlung von hieron wird sehr geschätzt. Ich weiß wirklich nicht mehr, was ich sonst noch machen soll.

Antwort

22

Ich habe das Problem auch auf Github veröffentlicht und es stellt sich heraus, dass die Dokumentation ein wenig irreführend ist. Dort heißt es:

{ 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "../../packages/my-package" 
     } 
    ], 
    "require": { 
     "my/package": "*" 
    } 
} 

Wenn Sie jedoch nur eine lokale Repo ohne Releases haben, müssen Sie verwenden:

{ 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "../../packages/my-package" 
     } 
    ], 
    "require": { 
     "my/package": "dev-master" 
    } 
} 

Die Version dev-master der Schlüssel hier ist (vorausgesetzt, dass Sie auf dem Master arbeiten Ast). Das war leicht ärgerlich, aber dank einiger hilfreicher Komponisten konnte ich dies endlich in den Griff bekommen.

Ich hoffe, dass dies jemand in der Zukunft helfen kann.

Viel Glück!

+1

Für mich bestand der Trick darin, ['" minimal-stability ":" dev "'] (https://getcomposer.org/doc/04-schema.md#minimum-stability) zu meiner composer.json hinzuzufügen Datei –

+1

@BradKent Ich würde sehr davon abraten, das '' minimal-stability ":" dev "-Ding zu verwenden, da es bedeutet: Sie wollen von allen Abhängigkeiten die neueste instabile Version. Das 'dev-' Präfix oder '-dev' Suffix ändert dies nur für das eine Paket in Frage. – Nemo64

+0

Solange Sie auch "prefer-stable": true haben, geht es Ihnen gut. Es wird nur dev-Pakete verwenden, wenn es notwendig ist, um eine Abhängigkeit zu erfüllen. – hackel

Verwandte Themen