首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将checkstyle和PMD集成到播放器框架Build.scala文件中

如何将checkstyle和PMD集成到播放器框架Build.scala文件中
EN

Stack Overflow用户
提问于 2013-06-05 08:05:17
回答 1查看 1.6K关注 0票数 3

我正在尝试将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,如下所示(有关整个定义,请参阅实际文件):

代码语言:javascript
复制
object ProjectBuild extends Build {

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

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

代码语言:javascript
复制
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项目中,但都失败了,出现了如下语法错误:

代码语言:javascript
复制
[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

以下是我尝试创建的合并giter8模板的示例Play项目,供您参考:

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

有人能解释一下如何修改此项目中的Build.scala,使播放控制台可以接受类似于giter8模板的checkstyle和pmd命令吗?也许可以通过派生play-example-qa项目并修复Build.scala?我打算将工作代码提供给Play社区,以供将来参考。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 05:02:39

我已经创建了一个GitHub repo来回答您的问题。

您可以从该项目开始,或者手动执行以下步骤以使我的giter8 template适应播放:

  • 首先使用play new foo创建一个新的Play项目,选择2表示Java。

  • 将模板的pmd-ruleset.xmlcheckstyle-config.xml放入Play的Play project中,将模板的D13object ProjectSettings >放入Play的Play中,并将模板的D17的内容放入Play的project/plugins.sbt中,同时记住在粘贴之前保留空白行。

  • 最后,将Play project/build.scala更改为实际使用模板中的ProjectSettings.all

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16929442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档