gpt4 book ai didi

scala - 如何将checkstyle和PMD集成到Play框架的Build.scala文件中

转载 作者:行者123 更新时间:2023-12-01 11:44:14 25 4
gpt4 key购买 nike

我正在尝试将 Checkstyle 和 PMD 集成到 Play 框架中。我首先使用 ymasory 创建的 giter8 模板生成一个示例 build.scala 文件,该文件支持 sbt 控制台中的 checkstyle 和 pmd 命令。这工作正常,我已经将生成的项目上传到 github:

https://github.com/ics-software-engineering/sbt-example-qa

当我尝试将这段代码与 Play new 命令创建的 Build.scala 文件一起使用时,问题就出现了。 giter8 模板使用 'settings' 值集成了 checkstyle 和 pmd,如下所示(完整定义请参见实际文件):

object ProjectBuild extends Build {

val main = Project(
"sbt-example-qa",
new java.io.File("."),
settings = Defaults.defaultSettings ++ ProjectSettings.all
)
}

另一方面,'play new' 命令生成的 Build.scala 文件具有不同的结构:

object ApplicationBuild extends Build {

val appName = "play-example-qa"
val appVersion = "1.0-SNAPSHOT"

val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean
)

val main = play.Project(appName, appVersion, appDependencies).settings(
// Add your own project settings here
)
}

具体来说,'play new' 创建的 Build.scala 文件定义了一个 play.Project 而不是 giter8 模板创建的项目。

我所有尝试“在此处添加我自己的项目设置”以将 Checkstyle 和 PMD 引入 Play 项目的尝试都失败了,出现如下语法错误:

[info] Loading project definition from /Users/johnson/projecthosting/github/play-  example-qa/project
[error] /Users/johnson/projecthosting/github/play-example-qa/project/Build.scala:17: overloaded method value settings with alternatives:
[error] (ss: sbt.Project.Setting[_]*)sbt.Project <and>
[error] => Seq[sbt.Project.Setting[_]]
[error] cannot be applied to (settings: Seq[sbt.Project.Setting[_]])
[error] val main = play.Project(appName, appVersion, appDependencies).settings(
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed

供您引用,这是我尝试创建的示例 Play 项目,它合并了 giter8 模板:

https://github.com/ics-software-engineering/play-example-qa

有人可以解释一下如何修改这个项目中的 Build.scala 以便 Play 控制台可以以类似于 giter8 模板的方式接受“checkstyle”和“pmd”命令吗?也许通过 fork play-example-qa 项目并修复 Build.scala?我打算将工作代码提供给 Play 社区以供将来引用。提前致谢。

最佳答案

我创建了一个 GitHub repo这回答了你的问题。

您可以从该项目开始,或手动按照这些步骤调整我的 giter8 template Play :

  1. 首先使用 play new foo 创建一个新的 Play 项目,为 Java 选择 2。
  2. 将模板的 pmd-ruleset.xmlcheckstyle-config.xml 放入 Play project 目录。
  3. 将模板的 project/build.scala 中的 object ProjectSettings 复制到 Play 的 project/Build.scala 中。
  4. 将模板的 project/plugins.sbt 的内容添加到 Play 的 project/plugins.sbt 中,记得在粘贴前留一个空行。
  5. 最后,将 Play project/build.scala 更改为实际使用模板中的 ProjectSettings.all:


    val main = play.Project(appName, appVersion, appDependencies).settings(
    ProjectSettings.all: _*
    )

关于scala - 如何将checkstyle和PMD集成到Play框架的Build.scala文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com