[DBFLUTE-576] {Maven}: batファイルのpauseを無効にするオプション追加 Created: 2009-10-23  Updated: 2009-12-29  Resolved: 2009-11-09

Status: Closed
Project: DBFlute
Component/s: Maven Plugin
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: shinsuke Assignee: shinsuke
Resolution: Fixed Votes: 0
Labels: None


 Description   

0.1.0 ではバッチファイルの pause はスキップできたが 0.2.0 ではできなくなった。
Maven 的には pause はしない方がよいので、デフォルトではスキップするようにする。
pause したければ、-Ddbflute.enablePause=true とする。



 Comments   
Comment by shinsuke [ 2009-11-09 ]

pause_at_endを使うように修正しました。
過去のバージョンに対しても適用されます。

Comment by jflute [ 2009-10-28 ]

一回「REOPEN」しますね。

EMecha-0.4.6にて、この件対応しました。
Exampleもほとんどのプロジェクトで反映させました。
なので、Maven DBFlute Pluginの方で対応ができたら、
dbflute-basic-exampleやdbflute-oracle-exampleなどで
動作確認ができます。

Comment by jflute [ 2009-10-27 ]

DBFluteモジュール:DBFlute-0.9.6-SNAPSHOT
DBFluteランタイム:DBFlute-0.9.6-10-SNAPSHOT
では、既にこの実装入れました。
(モジュール内のDBFluteクライアントのテンプレートを修正)

EMechaもSVN上は直しました。

Comment by jflute [ 2009-10-27 ]

「pause_at_end」りょかいです。
こういうのどんどん言って頂けると助かります。
修正したやつでもう一度、仕様記載します。

if "%pause_at_end%"=="y" (
  pause
)

<1>
EMechaとMaven DBFlute Plugin両方の新しい
DBFluteクライアントのテンプレートにおいて、
それぞれの.batにて:

if "%pause_at_end%"=="y" (
  pause
)

_project.batにて:

if "%pause_at_end%"=="" set pause_at_end=y
という処理を追加(修正)する。

<2>
Maven DBFlute Pluginでは、実行前に環境変数「pause_at_end」に
問答無用で「n」を格納する処理を入れる。

Comment by shinsuke [ 2009-10-27 ]

まとめていただき、ありがとうございます。
対応方向的にそれに賛成ですー。
細かいですが、個人的に finally_pause の変数名が
気になるので pause_at_end のあたりの方が良いかな、
と思っています (^^;

Comment by jflute [ 2009-10-27 ]

<1>
EMechaとMaven DBFlute Plugin両方の新しい
DBFluteクライアントのテンプレートにおいて、
それぞれの.batにて:

if "%finally_pause%"=="y" (
  pause
)

_project.batにて:

if "%finally_pause%"=="" set finally_pause=y

という処理を追加(修正)する。

<2>
Maven DBFlute Pluginでは、実行前に環境変数「finally_pause」に
問答無用で「n」を格納する処理を入れる。

という感じでどうでしょうか?

既存のDBFluteクライアントは割り切りで、
新しく作ったDBFluteクライアントであれば、
どっちで作ったDBFluteクライアントでも
ダブルクリック実行・Maven実行が両立するはず。

Comment by jflute [ 2009-10-27 ]

それぞれの「.bat」で以下のように記述して:

IF "%finally_pause%"=="y" (
  pause
)

「_project.bat」で以下の一行を追加して:

IF "%finally_pause%"=="" SET finally_pause =y

Maven DBFlute Pluginでタスク実行時にfinally_pauseを
問答無用で「n」にするようにして実行して、
EMechaでもMaven DBFlute PluginでもDBFluteクライアントを
生成するときに「.bat」たちを上記のように生成すれば、
どっちでDBFluteクライアントを作っても、
ダブルクリック実行でpauseして、Maven実行でpauseしないで、
ってのが実現出来るかなぁと。

ちょっとWindows環境で試してみます。

Comment by jflute [ 2009-10-27 ]

あ、なるほど、ごめんなさい。
既存のDBFluteクライアントで試していました。
(dbflute-oracle-example)
Maven DBFlute Pluginで生成したDBFluteクライアント
じゃないとってところなのですね。

ダブルクリック実行とMaven実行が両立しないのは
場合によってはちょっと使いつらそうですね。。。

Maven DBFlute Plugin専用の口(.bat)を作ってもいいかなと思ったり。
「_maven-entry.bat」みたいな感じで、一個だけファイルを提供して、
(Maven DBFlute PluginでもEMechaでもテンプレートでも同じものを提供)
で、Maven DBFlute Pluginからは「call _maven-entry.bat generate」と
第一引数で全てのタスクの実行をすることができて、pauseはしない。
ただ、generate.batとかに独自の処理を入れてるプロジェクトの場合、
その方法だと、Maven DBFlute Pluginからの実行のときに独自処理が
実行されないとかになるのがちょっと難点ですが、割り切ってもいいかも。

もしくは、環境変数でIF文でpauseをするかしないか操作できるようにできないかなと。

IF %SUPPRESS_PAUSE%
  goto :exit
END
pause
;exit

みたいな感じで。
既存のDBFluteクライアントでは仕方ないですが、
新しいDBFluteクライアント(EMechaでもMavenでも)でこのようにして、
Mavenからの実行の場合にこの環境変数でpauseがスキップされるようにするとか。

  1. とりあえずIF文を探ってみますかね。。。(Winバッチがどこまでできるのか!?)
Comment by shinsuke [ 2009-10-27 ]

確認したところ、再現しないのですが、実行したときに

...>mvn dbflute:doc
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'dbflute'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - sample.app:sample:war:0.1.0
[INFO]    task-segment: [dbflute:doc]
[INFO] ------------------------------------------------------------------------
[WARNING] Attempting to build MavenProject instance for Artifact (org.seasar.dbf
lute:maven-dbflute-plugin:0.3.0-20091023.171156-2) of type: maven-plugin; constr
ucting POM artifact instead.

という感じで、SNAPSHOT を利用していると 0.3.0-* というように
バージョンが出ると思うのですが、どうなっているでしょうか?
あとは生成されたdbfluteクライアントのdoc.bat で rem pause と
なっているでしょうか?

Comment by jflute [ 2009-10-24 ]

Windows XP
Maven 2.0.7
Maven DBFlute Plugin 0.3.0-SNAPSHOT

「mvn dbflute:doc」で試してみましたが、
pauseされてしまいますね。(他のタスクも同様)

mvn dbflute:doc

自分の使ってるMavenのバージョンが古い???

Comment by shinsuke [ 2009-10-23 ]

FIXED Maven DBFlute Plugin 0.3.0

Generated at Sat Apr 27 07:00:10 JST 2024 using Jira 9.15.0#9150000-sha1:9ead8528714127d8cfabf2446010d7e62c0a195c.