【发布时间】:2012-06-30 03:37:03
【问题描述】:
我尝试使用 Play(2.0.2) 项目在 Jenkins 上建立构建管道。
由于我只想构建一次源并将类用于下游构建,因此我现在创建了一个运行“sbt test:compile”的“编译”作业。到目前为止有效。
然后下一个作业应该只运行已编译的测试。如果我使用“sbt test”,它会按预期工作,但会再次编译源代码。
但如果我尝试运行“sbt test:run”,它会显示:
[info] Loading project definition from ~/myproject/project
[info] Set current project to myproject (in build file: ~/myproject/)
java.lang.RuntimeException: No main class detected.
at scala.sys.package$.error(package.scala:27)
[error] {file:~/myproject/test:run: No main class detected.
同样的情况也发生在本地。我可以运行“sbt test”但不能运行“sbt test:run”。同样的错误。
有人可以为我指明正确的方向吗?
【问题讨论】:
-
您是否为这两项工作使用相同的工作空间?
-
另外,
test:run运行在测试源中定义的主类,类似于compile:run在主源中运行主类。如果没有主类,则没有可运行的内容。 -
CIGuy,是的。我正在使用相同的工作区。谢谢@Mark,我想将您的评论标记为答案。您能否再次发布它作为答案?我现在有一个不同的问题:我将如何使用 sbt 在预编译源上运行单元测试(JUnit)?我应该写一个 MainClass 来做到这一点吗?看来我必须添加一个 junit-interface 作为依赖项,这看起来很奇怪,因为当我执行“sbt clean test”时它们运行良好
-
完成。最好将新问题设为新帖子。
标签: java jenkins sbt playframework-2.0