2016-06-06 6 views
2

Ich schreibe ein Framework, das für meine zukünftigen Projekte verwendbar ist. Ich möchte das Framework auf einen privat gehosteten Gitserver stellen und in zukünftigen Projekten mit Composer laden.Laden eines benutzerdefinierten Git Repository mit Composer

Darf ich wissen, wenn ich init bin, sollte "--bare" verwendet werden? Ich verwendete "bare" Repo, aber Komponist sagte das Paket nicht gefunden. Ich habe herumgesucht und glaube, dass es an "composer.json fehlt" liegt. Aber ohne "-", kann ich meinen Code nicht einmal zum Server schieben. Ich "klicke" das Framework an einen anderen Ort und lade den Ort mit dem Composer, der immer noch nicht funktioniert.

ich die beiden Versionen unten versucht haben, die beide gescheitert:

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://server/git/sdk/" 
    } 
] 

"repositories": [ 
    { 
     "type": "package", 
     "package": { 
      "name": "vendor/sdk", 
      "version": "master", 
      "source": { 
       "url": "https://server/git/sdk/", 
       "type": "git", 
       "reference": "master" 
      } 
     } 
    } 
] 

Dank.

Antwort

2

Ich Referenzierung der offiziellen Dokumente, wie ein Paket von einem VCS zu laden: https://getcomposer.org/doc/05-repositories.md#using-private-repositories

privates Projekt B benötigen, müssen Sie zwei Dinge in der composer.json Datei des öffentlichen Projekt A:

  1. das Repository als vcs
  2. erfordert es auf Ihrem Server an den privaten Repository mit der URL-Typ definiert

    { 
        "name": "project A",  
        "description": "public project A requiring private project B", 
        "require": { 
         "vendor/my-private-repo": "dev-master" 
        }, 
        "repositories": [ 
         { 
          "type": "vcs", 
          "url": "[email protected]:vendor/my-private-repo.git" 
         } 
        ] 
    } 
    

Dann starten Sie den Composer. Es wird das private Projekt B in das Lieferantenverzeichnis des Projekt A.


Darf ich weiß, holen, wenn ich init git, sollte „--bare“ verwendet werden? Ich habe "bare" Repo erstellt, aber Komponist sagte, dass das Paket nicht gefunden wird. Ich habe herumgesucht und glaube, dass es an "composer.json fehlt" liegt.

git init --bare erstellt ein Repository ohne einen funktionierenden Baum. Das bedeutet, dass das Repository keine funktionierende oder ausgecheckte Kopie Ihrer Quelldateien enthält. Nur der git-Revisionsverlauf Ihres Repos wird im Stammordner Ihres Repositorys gespeichert (statt in einem .git-Unterordner).

I "Git klonen" das Framework an einen anderen Ort, und laden Sie den Speicherort mit Composer, immer noch fehlgeschlagen.

Sie brauchen nicht zu git clone oder git init das Repository eine lokale Kopie zu speichern, holen nur direkt aus dem privaten Server mit Composer.

Wir haben die folgende Situation:

  • Projekt A mit einem composer.json sollte Projekt B aus privaten Repo holen.
  • wir verlassen git out, lassen Composer das Holen. Nicht manuell abrufen.
  • und nur auf der composer.json Seite konzentrieren, dieses Problem zu lösen (siehe oben)

Nebenbei bemerkt: die zweite repository Definition Sie auf dem Laufenden definiert eine package. Dies ist beschrieben in https://getcomposer.org/doc/05-repositories.md#package-2 Sie sind frei benötigen das private Repo als Paket, aber es ist nicht erforderlich hier, weil die oben genannten composer.json sollte gut funktionieren.

+0

"Optionen": { "ssh2": { "username": "Dummy", "privkey_file": ""} } – y2kbug

+0

brauche ich eine Taste, um den Host eingeben. Ich verwende Netbeans unter Windows. Wie soll ich den Schlüsselpfad definieren? Wird eine Datei mit öffentlichen Schlüsseln benötigt? Und kann ich den Port in der URL [email protected] angeben: vendor/my-private-repo.git? Vielen Dank! – y2kbug

+1

Okay, ich habe es funktioniert. Ich benutze die von Jens erwähnte Konfiguration, aber ersetze die URL durch eine SSH. Ich habe eine "config" mit SSH-Schlüsselpfad in "C: \ Users \ yourname \ .ssh \" platziert. Und alles funktioniert jetzt gut. FYR so sollte die "config" aussehen: http://nerderati.com/2011/03/17/simplify-your-life-with-an-sssh-config-file/ – y2kbug

Verwandte Themen