Als ich zum ersten Mal seit einigen Jahren versuchte, Play Framework zu berühren, gab es eine Änderung und ich wollte Gradle verwenden, also vergaß ich, bis ich ein Projekt mit Gradle startete. Ich werde es als Aufzeichnung aufbewahren. Play Framework ist ein Full-Stack-Webanwendungsframework, mit dem Sie mithilfe von Java oder Scala entwickeln können. Dieses Mal schreibe ich unter der Annahme eines Projekts in Java, das relativ einfach einzugeben ist.
--Installieren Sie die Tools, die zur Verwendung des Play Framework erforderlich sind
Java Wenn Sie die offiziell erforderlichen Umgebungsinformationen überprüfen (https://www.playframework.com/documentation/2.8.x/Requirements), wird "Java SE 1.8 oder höher" angezeigt, also die neueste Java-Version. Installieren Sie die Version.
brew cask install java
sbt
Ein Build-Tool zum Erstellen von Anwendungen mit Java oder Scala.
Die offiziellen erforderlichen Umgebungsinformationen (https://www.playframework.com/documentation/2.8.x/Requirements) enthalten eine Beschreibung von sbt
. Installieren Sie sie daher ebenfalls.
brew install sbt
Gradle Es ist ein Build-Automatisierungssystem, das hauptsächlich auf Java und Scala abzielt und mithilfe von Plug-Ins verschiedene Frameworks und JVM-Sprachen unterstützen kann. Wenn Sie sich die offiziellen Plugin-Informationen (https://plugins.gradle.org/) ansehen, finden Sie Plugins wie Kotlin und Spring Boot. In Bezug auf Play Framework scheint es, dass bis zu Gradle 5 auf der Seite des Hauptgeräts unterstützt wurde, aber von Gradle 6 wurde es geändert, um mit einem Plug-In zu unterstützen. (Https://docs.gradle.org/current/userguide/play_plugin.html)
brew install gradle
Bevor Sie damit beginnen, lesen Sie das Gradle Play Plugin Official. Die unterstützten Play Framework-Versionen werden aufgelistet. Derzeit (* 2019/12) werden nur bis zu 2.6 Serien von Play Framework unterstützt. Dieses Mal möchte ich es mit "2.6.25" erstellen, der endgültigen Version der 2.6-Serie.
Wenn Sie Erklärung zur offiziellen Erstellung neuer Projekte von Play Framework aktivieren, gibt es zwei Arten von Beschreibungen: "Java-Vorlage" und "Scala-Vorlage". ..
Dieses Mal werde ich die "Java-Vorlage" verwenden, da ich die Entwicklung in Java anstrebe.
…… Wenn Sie den beschriebenen Befehl jedoch so ausführen, wie er ist, wird die neueste Vorlage heruntergeladen und von Vorlagenprojekt auf Github erstellt. Ich werde am Ende.
Dieses Mal erstellen wir es mit "2.6.25" anstelle des neuesten ("2.8.0" ab Dezember 2019), daher müssen wir den Zweig angeben.
Als ich mich nach einer Möglichkeit umsah, einen Zweig anzugeben, fand ich eine Seite in der sbt-Formel, auf der der Parameter --branch
erwähnt wurde.
sbt - Giter8 parameters
Wechseln Sie im Terminal in ein beliebiges Verzeichnis und führen Sie den folgenden Befehl aus.
sbt new playframework/play-java-seed.g8 --branch 2.6.x
Nach einer Weile werden Sie auf dem Terminal nach den folgenden Elementen gefragt.
name [play-java-seed]:
organization [com.example]:
Sie können diese beiden mit der Eingabetaste überspringen, ohne sie einzugeben. Wenn Sie warten, bis der Vorgang abgeschlossen ist, wird direkt unter dem Verzeichnis ein Verzeichnis mit dem Namen "play-java-seed" erstellt und die Vorlagenprojekte in dieses Verzeichnis heruntergeladen.
Glaubst du nicht, dass du das bisher gemacht hast?
"Ich möchte dieses Vorlagenprojekt mit einem anderen Projektnamen herunterladen."
In einem solchen Fall können Sie es mit Ihrem bevorzugten Projektnamen erstellen, indem Sie die Option --name = [Projektname]
verwenden.
Diese Option wird in der Hilfe von Giter8
beschrieben, die intern vom Befehl sbt new
verwendet wird.
Giter8-How to use
Sie können das Vorlagenprojekt 2.6.x
mit dem Projektnamen play-sample
direkt unter einem beliebigen Verzeichnis herunterladen, indem Sie den folgenden Befehl ausführen.
sbt new playframework/play-java-seed.g8 --branch 2.6.x --name=play-sample
Wenn Sie Ihr Projekt erfolgreich erstellt haben, öffnen Sie es in der IDE. Ich werde diesmal nicht über IDEs sprechen, aber diejenigen, die in der Java-Entwicklung außer Android häufig verwendet werden, sind "ecipse" oder "IntelliJ IDEA". Wenn Sie das Projekt öffnen und überprüfen, finden Sie eine Datei mit dem Namen "build.gradle" direkt unter dem Projekt. Diese Datei ist eine Konfigurationsdatei zum Erstellen von Projekten in Gradle. Zum Zeitpunkt des Herunterladens handelt es sich um eine Gradle 5-basierte Einstellung, daher werden wir sie ändern, um das Gradle Play-Plugin zu unterstützen. Die Referenz zum Ändern der Einstellungen lautet "1.3. Anwenden des Plugins", "3.1. Hinzufügen von Abhängigkeiten", "4.1. Targeting a" in Gradle Play Plugin Official. Es gibt 4 Elemente: "Spielversion" und "4.2. Routenstil konfigurieren".
1.3. Applying the plugin Dies ist die Einstellung des Plug-Ins, das in Gradle geladen werden soll. Zum Zeitpunkt des Herunterladens lautet die Beschreibung wie folgt.
plugins {
id 'play'
id 'idea'
}
Das Element mit "id:" play "" ist die Einstellung zum Laden des Plug-Ins, das bis zu Gradle 5 verwendet wurde. Ändern Sie dies, um das Gradle Play Plugin wie folgt zu laden.
plugins {
// id 'play'
id 'org.gradle.playframework' version '0.9'
id 'idea'
}
3.1. Adding dependencies Abhängige Bibliothekseinstellungen, die beim Erstellen eines Projekts verwendet werden. Zum Zeitpunkt des Herunterladens sind die Einstellungen wie folgt.
dependencies {
play dependencyFor("com.typesafe.play:play-guice", scalaVersion, playVersion)
play dependencyFor("com.typesafe.play:play-logback", scalaVersion, playVersion)
play dependencyFor("com.typesafe.play:filters-helpers", scalaVersion, playVersion)
}
Die Wiedergabeunterstützung in Gradle ist verschwunden, und die Einstellungsmethode für abhängige Bibliotheken wurde geändert, indem Sie zum Gradle Play Plugin wechseln.
Lesen Sie die offizielle Erklärung des Gradle Play Plugins und ändern Sie es, um die Bibliothek zu laden, die 2.6.25
entspricht.
dependencies {
// play dependencyFor("com.typesafe.play:play-guice", scalaVersion, playVersion)
// play dependencyFor("com.typesafe.play:play-logback", scalaVersion, playVersion)
// play dependencyFor("com.typesafe.play:filters-helpers", scalaVersion, playVersion)
implementation "commons-lang:commons-lang:2.6"
implementation "com.typesafe.play:play-guice_2.12:2.6.25"
implementation "ch.qos.logback:logback-classic:1.2.3"
testImplementation "org.scalatestplus.play:scalatestplus-play_2.12:3.1.2"
}
Diesmal funktioniert es mit "2.6.25". Ändern Sie daher die Bibliotheksversion von "com.typesafe.play: play-guice" in "2.6.25" anstelle von "2.6.15", die vom offiziellen Gradle Play Plugin präsentiert wird. tun.
4.1. Targeting a Play version Dies ist die Einstellung der Play Framework-, Java- und Scala-Versionen, die auf die Erstellungszeit ausgerichtet werden sollen. Zum Zeitpunkt des Herunterladens sind die Einstellungen wie folgt.
def playVersion = "2.6.22"
def scalaVersion = System.getProperty("scala.binary.version", /* default = */ "2.12")
...
model {
components {
play {
platform play: playVersion, scala: scalaVersion, java: '1.8'
injectedRoutesGenerator = true
sources {
twirlTemplates {
defaultImports = TwirlImports.JAVA
}
}
}
}
}
Da das Format durch Wechseln zum Gradle Play Plugin geändert wurde, ändern Sie es gemäß der offiziellen Beschreibung des Gradle Play Plugins. Da die diesmal verwendete Version von Play Framework "2.6.25" ist, wird auch die Beschreibung von playVersion geändert.
def playVersion = "2.6.25"
def scalaVersion = System.getProperty("scala.binary.version", /* default = */ "2.12")
...
play {
platform {
playVersion=playVersion
scalaVersion=scalaVersion
javaVersion=JavaVersion.VERSION_13
}
}
Ändern Sie die Einstellung des Parameters "javaVersion" entsprechend der zum Erstellen verwendeten Java-Version.
Ab Dezember 2019 wird Java 13 installiert, wenn Sie beim Ausführen von "Brew Cask Install Java" keine Version angeben.
Geben Sie daher die Versionsinformationen in JavaVersion.VERSION_13
an, die in Gradle definiert sind.
Definitionsinformationen für andere Versionen finden Sie auf den folgenden Seiten der offiziellen Gradle-Referenz.
JavaVersion (Gradle API 6.0.1)
4.2. Configuring routes style
Legen Sie fest, ob das Routenformat für die Zuordnung der URL und des Controllers in Play Framework "StaticRoutesGenerator" oder "InjectedRoutesGenerator" lautet.
In Play Framework 2.4
oder höher ist InjectedRoutesGenerator
die Standardeinstellung. Fügen Sie die Einstellung daher wie folgt hinzu.
play {
platform {
playVersion=playVersion
scalaVersion=scalaVersion
javaVersion=JavaVersion.VERSION_13
}
injectedRoutesGenerator = true
}
Gehen Sie zurück zum Terminal und führen Sie den folgenden Befehl aus:
gradle runPlay
Wenn der Build erfolgreich ist und der Entwicklungsserver gestartet wurde, wird die folgende Anzeige angezeigt.
BUILD SUCCESSFUL in 1s
7 actionable tasks: 1 executed, 6 up-to-date
Waiting for changes to input files of tasks... (ctrl-d to exit)
<=============> 100% EXECUTING [1m 49s]
> IDLE
Wenn dies angezeigt wird, greifen Sie mit einem Browser auf http://127.0.0.1:9000 zu. Wenn ein solcher Bildschirm angezeigt wird, ist der Start erfolgreich.
Recommended Posts