Gradleプロジェクトの作成
今日はEclipseにGradleプロジェクトを作成します。
Gradleプロジェクトの作成
Eclipseを起動し[ファイル]-[新規]-[プロジェクト]と選択 し、
Gradle(STS)-Gradle(STS)プロジェクトを選択し次へ(N)>
プロジェクト名を「smplworkflow_j」に
サンプルプロジェクトを「Java Quickstart」に指定し[完了]
プロジェクトが作成された状態。
プロジェクトの設定変更
プロジェクトを右クリックして[プロパティー]→[Javaコンパイラー]の[コンパイラー準拠レベル]を[1.8]に変更してください。
再ビルドを促されるので[OK]してください。
サーバーの追加
[smplworkflow_j]を右クリック-[新規]-[その他]-[サー バー]-[サーバー]を選択
[Tomcat v8.0サーバー]を選択し[完了]
動的Webプロジェクトへの変換
src/main直下に、webappフォルダを作成します。
[smplworkflow_j]-[新規]-[ソースフォルダ]を選択
フォルダ名に「src/main/webapp」を指定し[完了]
作成した[src/mian/webapp]を右クリック[新規]-[フォルダ]を選択し
フォルダ名に「WEB-INF」を指定し[完了]
以下のようになればOKです。
ファセットの追加
[smplworkflow_j]を右クリック-[プロパティ]-[プロジェクトファセット]を選択
より詳しい設定をクリック
[コンテンツディレクトリ]にsrc/main/webappを設定し
web.xmlデプロイメント記述子の生成にチェックを入れて[OK]
ランタイムを3.1にして[OK]
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]を右クリック-[新規]-[クラス]を選択
パッケージに「jp.co.smpl」
名前に「AppConfig」を設定し[完了]
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の編集
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'を押す
DB操作をするclassとsqlが自動生成されます。
これでgradleプロジェクトの作成は完了でございます。