
warxの日記: Windows7で、Springboot の boot 。 3
■1.gradleインストール。公式からZIPをDLしてテキトーに展開&ノールックでパス通し。
■2.cygwinインストール。zipと名がつくもの,wget,curl,vim,gitとかいりそうなものもついでに。
■3.gvmインストール。bash@cygwinから。
$ curl -s get.gvmtool.net | bash
# この時点で .bashrc に
# source "/home/TM/.gvm/bin/gvm-init.sh"
# が追加されてるんで、その手前に下みたく JAVA_HOME の設定と gradle-1.xx/bin への path 設定を追加しとく。
export PATH="/cygdrive/c/kepler/gradle-1.xx/bin:$PATH"
export JAVA_HOME="/cygdrive/C/Java/jdk1.7.0_xx"
source "/home/TM/.gvm/bin/gvm-init.sh"
$ source ~/.bashrc
■4.springboot インストール。
$ gvm install springboot
...
Do you want springboot 1.0.1.RELEASE to be set as default? (Y/n): Y ←Nと答えないように。
$ spring --version
Spring CLI v1.0.1.RELEASE
■5.とりあえず世界内存在化
$ cat app.groovy(もちろん事前に vim なりなんなりで作っとけ)
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
$ spring run app.groovy
(略)
2014-04-19 02:25:39.014 INFO 6576 --- [ runner-0] o.s.boot.SpringApplication : Started application in 6.31 seconds (JVM running for 42.359)
tomにゃんこ入りですか。てことで http://貴殿のホスト名:8080/ にアクセスすると、ハローワークしました。
■6.既存情報を組み合わせてハローぱられるワールド実践。ブーツの中は地獄変。
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started-installing-the-cli
http://www.techscore.com/blog/2014/01/07/gradle-%E3%81%A8-spring4-%E3%81%A7-hello-world/
http://www.slideshare.net/makingx/spring-4spring-boot-spring-jjug-jsug
▼6-1.まず、ぐれいどるびるどの準備
$ mkdir /cygdrive/c/kepler/gradle_ws/
$ cd /cygdrive/c/kepler/gradle_ws/
$ gradle init --type java-library
(vimなどで build.gradle を作成)
$ cat build.gradle
buildscript {
repositories {
mavenCentral()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.2.BUILD-SNAPSHOT")
}
}
apply plugin: 'java'
apply plugin: 'spring-boot'
jar {
baseName = 'myproject'
version = '0.0.1-SNAPSHOT'
}
repositories {
mavenCentral()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.5'
testCompile 'junit:junit:4.11'
compile("org.springframework.boot:spring-boot-starter-web:1.0.1.RELEASE")
}
▼6-2.コード実装
$ cd /cygdrive/c/kepler/gradle_ws/src/main/java
$ cat Application.java(もちろん事前にコーディングしとこうね。)
package demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
$ cat WelcomeController.java
package demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class WelcomeController {
@RequestMapping("/")
public String hello() {
return "Hell in the boot!";
}
}
▼6-3.ビルド
$ gradle build
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:bootRepackage
:assemble
:compileTestJava
Download http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.pom
Download http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
Download http://repo1.maven.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
Download http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar
Download http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Total time: 20.328 secs
▼6-4.起動
$ cd build/libs
$ java -jar myproject-0.0.1-SNAPSHOT.jar --server.port=8081(さっきのとポートを変えたりして)
つづく?かなあ。せめて jdbc つついてみるくらいはしたいかも。
野望としては Wicket と併用。あと ExtJS/sencha touch でモダンなWebアプリデモ?できるのかすらわからんけどー。
つづき (スコア:2)
Gradle IDE(Gradle integration)をEclipseにインストールして、本文で作ったものをインポートした。
できませんでした。(ひえらるきかるえくりぷすぷろじぇくとがどーとか例外吐いてデイモンが立ち上がらない。)
ヒマにあかして半日程度こねくりまわしてたけど、めんどくせーので、build.gradle に apply plugin: 'eclipse' を追加し、
eclipse上で新規プロジェクトを作成、srcディレクトリとファイル名にgradleが入ってるのをプロジェクトにコピってから
bash じゃなくて cmd.exe で
cmd.exe> gradle eclipse
で eclipse 用のサムシングを生成、ライブラリ類も自動でDLしてきてとりあえず eclipse 上で触れるように。
前述の WelcomeController.java を練習がてら次を追加して動作確認。
@RequestMapping("/another/")
public String helloAnother() {
return "Hell in the another boot!";
}
cmd.exe> java -jar %プロジェクトディレクトリのbuildディレクトリあたり%\ビルドされた.jar
ブラウザから http://localhost:8080/another/ [localhost] でちゃんとメッセージが出ればOKかなと思っている。
jdbcさわるかー、というだけでは若干つまんないかなということで、 postgreSQL + JPA をチョイス。
でぺんでんすぃ{
// どらいばを追加。
compile 'postgresql:postgresql:9.1-901.jdbc4'
// SPRING BOOT DATA-JPAを追加。
compile("org.springframework.boot:spring-boot-starter-data-jpa:1.0.2.BUILD-SNAPSHOT")
}
ポスとぐレすきゅえるもDL。ZIPアーカイブのほうで。
今日はここまで。次はポスグレの初期化、JPAでコーディングして画面にポンの予定。
参照URL (スコア:2)
https://github.com/spring-projects/spring-boot [github.com]
https://github.com/spring-projects/spring-boot/tree/master/spring-boot... [github.com]
ここのpom.xmlを見てbuild.gradleへ転記してました。