34

Play Framework 2.0は、Webアプリケーションを作成するためのフルスタックスタンドアロンフレームワークです。おそらく、それにもかかわらず、多くの人がそれをビルド管理に統合する必要があります。残念ながら、私は彼について多くの情報を見つけられませんでした。

これが私のユースケースです:ScalaとPlay2.0を使用する新しいプロジェクトを作成したいと思います。sbtは使いたくない。Gradleを使用したいのですが、依存関係の管理はMavenリポジトリを介して行う必要があります。

私はこのプレイモジュールを見つけただけです:http ://www.playframework.org/modules/maven-1.0/homeこれはMavenを介した依存関係管理をサポートしています。

Grailsでこれらの例のようなものを探しています: https ://github.com/grails/grails-gradle-pluginまたはhttp://grails.org/doc/latest/guide/commandLine.html#4.5%20Ant%20and %20Maven

もちろん、「playconsoleコマンド」を呼び出すスクリプト/タスクを書くこともできます。しかし、私はこの解決策が好きではありません。ビルド管理にGradle/Mavenを使用するより良い方法はありますか?これが唯一の解決策である場合は、Gradleを使用します。GradleはPlayコマンド(つまり、内部でsbt)を呼び出します。これは機能しますか、それとも他の問題が発生しますか?

4

4 に答える 4

24

これは非常にトリッキーなビジネスです。PlayのSBTは、依存関係のフェッチ、ソースとテンプレートのコンパイル、およびSBTインクリメンタルコンパイル+自動リロード機能に使用されます。build.gradlePlay 2.0のすべての依存関係を解決し、EclipseまたはIntelliJ IDEAクラスパスを設定するスクリプトを作成し、ここで公開しました

後で時間があるときにコンパイルを実装しようとしますが、それにはいくつかの調査が必要になります。もちろん、SBTに委任するだけのコンパイルタスクと実行タスクを追加することもできますが、SBTとGradleの両方ですべてのプロジェクトの依存関係を記述する必要があり、管理が難しくなります。

編集:

サンプルのbuild.gradleファイルを更新しました。CI環境で役立つはずのタスクを追加playCompileしました。タスクは次playCleanのことを行います。playCompile

  1. compileすべてのユーザー依存関係(構成で定義)をlib/フォルダーにコピーします。これは、Playが下からすべてのjarファイルを親切にピックアップするために機能しますlib/
  2. コマンドを実行play compileして、すべてのソース、テンプレート、およびその他のPlayFrameworkのものをコンパイルします。

上記のコマンドの出力をそれぞれ使用cleanCopyPlayLibsplayCleanて削除することができます。

Windowsには奇妙な問題(バグ?)があるように見えることに注意してください。これは、play compile失敗した場合でも、gradleが成功したことを通知することを意味します。

コメントへの返信:

私はあなたが単に行方不明だと思います

repositories{
  mavenCentral()
}

あなたのファイルで。このドキュメントをチェックしてください。

于 2012-04-25T00:48:51.447 に答える
5

朗報です。Gradle2.7の時点で、公式の再生プラグインがあります:https ://docs.gradle.org/current/userguide/play_plugin.html

于 2015-09-19T13:50:51.853 に答える
3

LinkedInは現在、これをサポートするGradleプラグインを作成しています。彼らはこれを3つのマイルストーンで展開しています:

  1. Gradleを使用してPlayアプリケーションを構築する
  2. 連続モードとホットリロード
  3. ScalaインタラクティブREPL

マイルストーン1はすでに完了しています。Gradleナイトリービルドを介して利用できます。上記のリンクされたブログ投稿で、彼らは人々にそれを試してみるように勧めています。

于 2015-06-22T03:38:29.413 に答える
0

Play Framework 1.2.x用のGradleで、Play2.xにも使用できる簡単なビルドスクリプトを設計しました。

https://github.com/kirang89/play-gradle

于 2012-09-02T18:02:50.503 に答える