2014-06-12 5 views
6

Ich habe an einer Reihe von Maven-Projekten, einem Scala-Projekt und einem Play-Projekt gearbeitet.Gibt es irgendwelche Überlegungen für Maven-Projekt und Sbt-Projekt und Spiel-Framework, um ein einzelnes Repository zu teilen?

Mit Standardkonfiguration, die Standard-Repositories für jeden von ihnen sind:

  • Maven @ /Users/Barry/.m2/repository
  • sbt @ /Users/Barry/.ivy2
  • Aktivator @ /Users/geek/Runtimes/activator-1.2.1/repository

Warum gibt es so viele verschiedene Repositories? Kann ich bei Verwendung aller drei Build-Tools alle Bibliotheken in einem einzigen Repository speichern?

Und Play 2.1 hat auch Cache-Verzeichnis, was zu Chaos führen wird, während ich die Maven-Projekte mit der gleichen Release-Version neu erstellen, und dann das Play-Projekt mit den gleichen Abhängigkeiten von den Maven-Projekten kompilieren.

Gibt es eine gute Praxis für diesen Fall?

Danke.

+0

Ich benutze sbt und lokale Maven-Repository zu sbt hinzufügen. – jilen

+0

Ja, sicher. Ich habe das auch gemacht, aber es gibt immer noch Play-Cache-Probleme, wie wäre es damit? –

+0

Verwenden Sie den 'sbt' Befehl anstelle von' play'. Als play '2.3.0' Release gibt es kein' play', und ich möchte nicht den 'activator' verwenden, also benutze ich' sbt' nur für [create play project] (http: //www.playframework. com/Dokumentation/2.3.x/Neue Anwendung) – jilen

Antwort

1

In solchen Fällen können Sie das vierte, remote Repository verwenden, um Artefakte zwischen ihnen zu teilen: obwohl jedes Build-Tool einen eigenen lokalen 'Cache' benötigt, haben Sie ein gemeinsames Repository für alle und Sie können diese Caches von Zeit zu Zeit löschen Zeit, wenn es zu viel Platz braucht.

Sie können das Remote-Repository mit einem Tool wie Sonatype Nexus erstellen oder einfach ein lokales Netzwerkverzeichnis als Remote-Repository behandeln (Maven unterstützt diese Art von Remote-Repositories, ich denke auch, dass SBT).

Verwandte Themen