パスワードを忘れた? アカウント作成
10839038 journal
日記

warxの日記: Windows7で、Springboot の boot 。 3

日記 by warx

■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アプリデモ?できるのかすらわからんけどー。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by warx (36578) on 2014年04月20日 17時17分 (#2585655) 日記

    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でコーディングして画面にポンの予定。

  • by warx (36578) on 2014年04月20日 17時23分 (#2585659) 日記

    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へ転記してました。

typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...