LoginSignup
0
1

More than 5 years have passed since last update.

Doma Gen の Gradle タスクを Buildship で実行できない

Last updated at Posted at 2018-09-13

環境

  • Eclipse Oxygen.3a (4.7.3a)
  • Buildship 2.2.1

問題

カスタムタスクが Gradle タスクのビューに表示されない。
tasks を実行しても表示されない。

原因

どうやら、タスクの定義がイマイチらしい。

Doma Gen のタスクはドキュメントでは次のようになっている。

task gen << {
    ant.taskdef(resource: 'domagentask.properties',
        classpath: configurations.domaGenRuntime.asPath)
    ant.gen(url: 'jdbc:postgresql://127.0.0.1/example', user: '', password: '',
        templatePrimaryDir: 'mytemplate') {

        entityConfig()
        daoConfig()
        sqlConfig()
    }
}

これは次のように定義するのがベター。

task gen {
    group = 'doma'
    description = 'タスクの説明をここに書く'
    doLast {
        ant.taskdef(resource: 'domagentask.properties',
            classpath: configurations.domaGenRuntime.asPath)
        ant.gen(url: 'jdbc:postgresql://127.0.0.1/example', user: '', password: '',
            templatePrimaryDir: 'mytemplate') {

            entityConfig()
            daoConfig()
            sqlConfig()
        }
    }
}

まず << は現在推奨されていない(?)ので doLast で代替する。ポイントは group と description を定義すること。ちなみに、<< とか doLast はタスクの定義にはほぼ必須で、これがないと、build.gradle が読み込まれた時点で即実行されてしまい、任意のタイミングでタスクとして実行できない。

感想

正直なところ、私は Gradle の体系的な知識に欠けているよなと自省。業務ではライブラリの jar ファイルがそのまんま Subversion に上がっているようなプロジェクトばっかりで、Gradle がライブラリの管理をしてくれるだけで、つまり、jar ファイル自体はバージョン管理外にできるという点だけで、Gradle は良い仕事をしてくれるようなぁと思ってしまうレベルです。そもそも SVN かよ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1