Gradleプロジェクトの作成

今日はEclipseにGradleプロジェクトを作成します。

Gradleプロジェクトの作成

Eclipseを起動し[ファイル]-[新規]-[プロジェクト]と選択 し、
Gradle(STS)-Gradle(STS)プロジェクトを選択し次へ(N)>

f:id:itfune:20161105145224g:plain


プロジェクト名を「smplworkflow_j」に
サンプルプロジェクトを「Java Quickstart」に指定し[完了]

f:id:itfune:20161105145542g:plain


プロジェクトが作成された状態。

f:id:itfune:20161105145837p:plain

プロジェクトの設定変更

プロジェクトを右クリックして[プロパティー]→[Javaコンパイラー]の[コンパイラー準拠レベル]を[1.8]に変更してください。

f:id:itfune:20161105150048p:plain

再ビルドを促されるので[OK]してください。

 

サーバーの追加

[smplworkflow_j]を右クリック-[新規]-[その他]-[サー バー]-[サーバー]を選択

[Tomcat v8.0サーバー]を選択し[完了]

f:id:itfune:20161105150325g:plain

 

動的Webプロジェクトへの変換

 src/main直下に、webappフォルダを作成します。
[smplworkflow_j]-[新規]-[ソースフォルダ]を選択

f:id:itfune:20161105205447p:plain

 
フォルダ名に「src/main/webapp」を指定し[完了]

f:id:itfune:20161105205629p:plain

 

作成した[src/mian/webapp]を右クリック[新規]-[フォルダ]を選択し

f:id:itfune:20161105205902p:plain

フォルダ名に「WEB-INF」を指定し[完了]
以下のようになればOKです。

f:id:itfune:20161105210107p:plain

ファセットの追加

[smplworkflow_j]を右クリック-[プロパティ]-[プロジェクトファセット]を選択

より詳しい設定をクリック

f:id:itfune:20161105210644p:plain

[コンテンツディレクトリ]にsrc/main/webappを設定し

web.xmlデプロイメント記述子の生成にチェックを入れて[OK]

f:id:itfune:20161105210834p:plain

 ランタイムを3.1にして[OK]

f:id:itfune:20161105211133p:plain

build.gradleの編集

build.gradleを開いて以下を貼り付け。

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'war'

sourceCompatibility = 1.8
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
    }
}

eclipse {
    // Dynamic Web Project
    wtp {
        component {
            // eclipse wtp context_path
            contextPath = '/smplworkflow_j'
        }
        facet {
            facet name: 'java', version: '1.8'
            facet name: 'jst.web', version: '3.1'
        }
    }
}

configurations {
    domaGenRuntime
}

repositories {   
    mavenCentral()
}

dependencies {
    domaGenRuntime 'org.seasar.doma:doma-gen:2.0.1'
    domaGenRuntime 'org.postgresql:postgresql:9.4-1206-jdbc41'
    compile 'org.seasar.doma:doma:2.0.1'
    compile 'org.seasar.doma:doma-gen:2.0.1'
    compile 'org.postgresql:postgresql:9.4-1206-jdbc41'
}

test {
    systemProperties 'property': 'value'
}

task gen << {
    ant.taskdef(resource: 'domagentask.properties',
        classpath: configurations.domaGenRuntime.asPath)
    ant.gen(url: 'jdbc:postgresql://localhost/smpl', user: 'postgres', password: 'password') {
        entityConfig(packageName: 'jp.co.smpl.entity')
        daoConfig(packageName: 'jp.co.smpl.dao', configClassName: 'jp.co.smpl.AppConfig')
        sqlConfig()
    }
}

AppConfig.javaの作成

[smplworkflow_j]を右クリック-[新規]-[クラス]を選択

f:id:itfune:20161105213752p:plain

 

 パッケージに「jp.co.smpl」

名前に「AppConfig」を設定し[完了]

f:id:itfune:20161105213841p:plain

 

 

AppConfig.javaを開き以下を貼り付け。

package jp.co.smpl;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.seasar.doma.SingletonConfig;
import org.seasar.doma.jdbc.Config;
import org.seasar.doma.jdbc.dialect.Dialect;
import org.seasar.doma.jdbc.dialect.PostgresDialect;
import org.seasar.doma.jdbc.tx.LocalTransactionDataSource;
import org.seasar.doma.jdbc.tx.LocalTransactionManager;
import org.seasar.doma.jdbc.tx.TransactionManager;

@SingletonConfig
public class AppConfig implements Config {

    private static final AppConfig CONFIG = new AppConfig();

    private final Dialect dialect;

    private final LocalTransactionDataSource localTransactionDataSource;

    private final TransactionManager transactionManager;

    private AppConfig() {
        try {
            dialect = new PostgresDialect();
            DataSource dataSource = (DataSource) InitialContext.doLookup("java:comp/env/jdbc/postgresql");
            localTransactionDataSource = new LocalTransactionDataSource(dataSource);
            transactionManager = new LocalTransactionManager(
                    localTransactionDataSource.getLocalTransaction(getJdbcLogger()));
        } catch (NamingException e) {
            throw new RuntimeException(e);
        }
    }
    @Override
    public Dialect getDialect() {
        return dialect;
    }
    @Override
    public DataSource getDataSource() {
        return localTransactionDataSource;
    }
    @Override
    public TransactionManager getTransactionManager() {
        return transactionManager;
    }
    public static AppConfig singleton() {
        return CONFIG;
    }
}

 

web.xmlとServer.xmlの編集

f:id:itfune:20161105214445p:plain

web.xml

最下部に以下を挿入する

  <resource-ref>
    <res-ref-name>idbc/postgresql</res-ref-name>
    <res-type>java.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

 

Gradleタスクの実行

[smplworkflow_j]を右クリック-[Gradle(STS)]-[タスククイックランチャー]を選択
タスク: gen
を指定し'Enter'を押す

f:id:itfune:20161105215037g:plain

DB操作をするclassとsqlが自動生成されます。
これでgradleプロジェクトの作成は完了でございます。