質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.52%

scalikejdbc-genでエラーが発生し、generate出来ない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 952

pop_04

score 10

毎回、お世話になっております。今回はscalikejdbcについての質問です。

前提・実現したいこと

scalikejdbcのmapper-generatorでソースコードを自動生成したいのですが、エラーが発生してしまい、生成されません。
もし記述もれや、エラーの原因を知っている方がいましたら教えていただきたいです。

発生している問題・エラーメッセージ

java.lang.IllegalArgumentException: For input string: ""
        at scala.collection.immutable.StringLike$class.parseBoolean(StringLike.scala:238)
        at scala.collection.immutable.StringLike$class.toBoolean(StringLike.scala:226)
        at scala.collection.immutable.StringOps.toBoolean(StringOps.scala:31)
        at scalikejdbc.mapper.SbtPlugin$$anonfun$scalikejdbc$mapper$SbtPlugin$$loadGeneratorSettings$11.apply(SbtPlugin.scala:100)
        at scalikejdbc.mapper.SbtPlugin$$anonfun$scalikejdbc$mapper$SbtPlugin$$loadGeneratorSettings$11.apply(SbtPlugin.scala:100)
        at scala.Option.map(Option.scala:145)
        at scalikejdbc.mapper.SbtPlugin$.scalikejdbc$mapper$SbtPlugin$$loadGeneratorSettings(SbtPlugin.scala:100)
        at scalikejdbc.mapper.SbtPlugin$$anonfun$10$$anonfun$apply$25.apply(SbtPlugin.scala:241)
        at scalikejdbc.mapper.SbtPlugin$$anonfun$10$$anonfun$apply$25.apply(SbtPlugin.scala:241)
        at scala.util.Either.fold(Either.scala:98)
        at scalikejdbc.mapper.SbtPlugin$$anonfun$10.apply(SbtPlugin.scala:241)
        at scalikejdbc.mapper.SbtPlugin$$anonfun$10.apply(SbtPlugin.scala:241)
        at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
        at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
        at sbt.std.Transform$$anon$4.work(System.scala:63)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
        at sbt.Execute.work(Execute.scala:237)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
        at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
        at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
[error] (compile:scalikejdbcGeneratorSettings) java.lang.IllegalArgumentException: For input string: ""

該当のソースコード

build.sbt

name := """play-scala-seed-sample"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.11"

libraryDependencies ++= Seq(
  jdbc,
  cache,
  ws,
  specs2 % Test,
  "org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test,
  //"com.h2database"  %  "h2"                           % "1.4.195",
  //"org.hsqldb" % "hsqldb" % "2.3.2"
  "mysql" % "mysql-connector-java"                        % "5.1.40",
  "org.scalikejdbc" %% "scalikejdbc"                      % "2.5.2",
  "org.scalikejdbc" %% "scalikejdbc-test"                % "2.5.2"   % "test",
  "org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % "test",
  "org.scalikejdbc" %% "scalikejdbc-config"             % "2.5.2",
  "org.scalikejdbc" %% "scalikejdbc-play-initializer" % "2.5.1",
  "org.flywaydb"    %% "flyway-play"                      % "3.1.0"
)

scalikejdbcSettings

project/scalikejdbc.properties (データベース名、ユーザー名、パスワードは、適切な値を入れています)

# JDBC 接続設定

#mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/データベース名?characterEncoding=UTF8&autoReconnect=true&useSSL=false
jdbc.username=ユーザー名
jdbc.password=パスワード
jdbc.schema=

# 生成するクラスを配置するパッケージ
generator.packageName=models
# ソースコードの改行コード: LF/CRLF
generator.lineBreak=CRLF
# テンプレート: basic/namedParameters/executable/interpolation/queryDsl
generator.template=queryDsl
# テストのテンプレート: specs2unit/specs2acceptance/ScalaTestFlatSpec
generator.testTemplate=specs2unit
# 生成するファイルの文字コード
generator.encoding=UTF-8
# scalikejdbc-syntax-support-macroを使用するか?: true/false
generator.autoConstruct
# sessionのimplicitパラメータに、デフォルトパラメータを付与するか?: true/false
generator.defaultAutoSession
# Datetimeを表現する際に使うclassの指定: org.joda.time.DateTime/java.time.ZonedDateTime/java.time.OffsetDateTime
generator.dateTimeClass

project/plugins.sbt

// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.10")

// web plugins

addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.4")

addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.8")

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")

addSbtPlugin("org.irundaia.sbt" % "sbt-sassify" % "1.4.6")

libraryDependencies += "mysql" % "mysql-connector-java"                        % "5.1.40"

addSbtPlugin("org.scalikejdbc" %% "scalikejdbc-mapper-generator" % "2.5.2")

application.conf

//db設定の所までは省略
scalikejdbc.global.loggingSQLAndTime.enabled=true
scalikejdbc.global.loggingSQLAndTime.singleLineMode=false
scalikejdbc.global.loggingSQLAndTime.logLevel=debug
scalikejdbc.global.loggingSQLAndTime.warningEnabled=true
scalikejdbc.global.loggingSQLAndTime.warningThresholdMillis=5
scalikejdbc.global.loggingSQLAndTime.warningLogLevel=warn

play.modules.enabled += "scalikejdbc.PlayModule"
# scalikejdbc.PlayModule doesn't depend on Play's DBModule
play.modules.disabled += "play.api.db.DBModule"

play.modules.enabled += "org.flywaydb.play.PlayModule"

試したこと

下記コマンドをターミナルで入力し、実行しましたが、エラーが発生しました。
sbt "scalikejdbc-gen board"

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

project/scalikejdbc.properties
のパラメータ不足でした。=の先の記述もれでした。(なんで書いてなかったんだろう・・・)お騒がせしました。
下記の部分を修正。

# scalikejdbc-syntax-support-macroを使用するか?: true/false
generator.autoConstruct=false
# sessionのimplicitパラメータに、デフォルトパラメータを付与するか?: true/false
generator.defaultAutoSession=false
# Datetimeを表現する際に使うclassの指定: org.joda.time.DateTime/java.time.ZonedDateTime/java.time.OffsetDateTime
generator.dateTimeClass=org.joda.time.DateTime

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる