2016-11-22 3 views
0

Javaを使用してPlay 2.5のマイクロサービス用のマルチプロジェクトhelloWorldを作成したいと思います。私は適切なテンプレートやチュートリアルを見つけることができません。 私の問題は、同時に実行することができ、両方ともRESTインターフェースを介してアクセス可能なプロジェクトを作成したいということです。Play Framework for Java用のマイクロサービステンプレートプロジェクト

+0

https://www.lightbend.com/activator/template/playing-microservices これは2.4ですが、何が起こっているのかを知ることができます。 –

答えて

1

ちょっとそれはすべてのSBTのマルチプロジェクト構成の例についてです:

name := "microservices" 

scalaVersion in ThisBuild := "2.11.8" 

autoScalaLibrary := false 


def module(id: String, names: String) = Project(id, file(names)) 
    .settings(javacOptions in compile ++= Seq("-encoding", "UTF-8", "-source", "1.8", "-target", "1.8", "-Xlint:unchecked", "-Xlint:deprecation")) 
    .settings(jacksonParameterNamesJavacSettings: _*) 

lazy val jacksonParameterNamesJavacSettings = Seq(
    javacOptions in compile += "-parameters" 
) 

lazy val common = module("common", "modules/common") 
lazy val aws = module("aws", "modules/aws") 
    .aggregate(common) 
    .dependsOn(common) 

lazy val keywords = module("keywords", "keywords") 
    .enablePlugins(PlayJava, JavaAppPackaging, DockerPlugin) 
    .dependsOn(common, aws) 
    .aggregate(common, aws) 

lazy val users = module("users", "users") 
    .enablePlugins(PlayJava, JavaAppPackaging, DockerPlugin) 
    .dependsOn(common, aws) 
    .aggregate(common, aws) 

フォルダ構造の例:

  • ルート:
    • ユーザー
      • プロジェクト
    • キーワード
      • プロジェクト
    • モジュール:
      • 共通
      • AWS

ユーザー/ build.sbt

name := """users""" 
scalaVersion in ThisBuild := "2.11.8" 
PlayKeys.devSettings := Seq("play.server.http.port" -> "9001") 
// application version release 
version := "2.8" 

libraryDependencies ++= Seq(
    cache, 
    javaWs, 
    "junit" % "junit" % "4.12", 
    "org.mockito" % "mockito-all" % "1.10.19", 
    "mysql" % "mysql-connector-java" % "6.0.4" 
) 

routesGenerator := InjectedRoutesGenerator 

dockerExposedPorts in Docker := Seq(9001) 

キーワード/ build.sbt

name := """keywords""" 

PlayKeys.devSettings := Seq("play.server.http.port" -> "9002") 
scalaVersion in ThisBuild := "2.11.8" 
// application version release 
version := "1.0" 


libraryDependencies ++= Seq(
    cache, 
    javaWs, 
    "junit" % "junit" % "4.12", 
    "org.mockito" % "mockito-all" % "1.10.19", 
    "mysql" % "mysql-connector-java" % "6.0.4" 
) 

routesGenerator := InjectedRoutesGenerator 

dockerExposedPorts in Docker := Seq(9000) 

は、その後、あなたが2つの別々のプロセスとして実行してSBTを実行し、目的のプロジェクトに移動し、それを実行する必要があります。

  • 1工程:
    • SBT。プロジェクトユーザ。走る;
    • これは9001の
  • 2のプロセスで実行されます:
    • SBT。プロジェクトキーワード。走る;
    • これは、私は明日あなたにgithubの上の例のテンプレートを提供します9002

上で実行されます。