【问题标题】:Play2: play stage command fails with 'not found: type SetupContext'Play2:播放阶段命令失败,并显示“未找到:类型 SetupContext”
【发布时间】:2014-05-23 09:01:54
【问题描述】:

我目前正在尝试将 Play 2.2.2 应用程序部署到 heroku,play stage 命令对我来说失败,输出如下:

$ play clean compile stage
[info] Loading project definition from /Users/apotapov/Dropbox/workspace/test/project
[info] Set current project to test (in build file:/Users/apotapov/Dropbox/workspace/test/)
[success] Total time: 0 s, completed Apr 9, 2014 4:45:28 PM
[info] Updating {file:/Users/apotapov/Dropbox/workspace/test/}test...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 3 Scala sources and 70 Java sources to /Users/apotapov/Dropbox/workspace/test/target/scala-2.10/classes...
[success] Total time: 28 s, completed Apr 9, 2014 4:45:56 PM
[info] Packaging /Users/apotapov/Dropbox/workspace/test/target/scala-2.10/test_2.10-1.0-SNAPSHOT-sources.jar ...
[info] Wrote /Users/apotapov/Dropbox/workspace/test/target/scala-2.10/test_2.10-1.0-SNAPSHOT.pom
[info] Done packaging.
[info] Main Scala API documentation to /Users/apotapov/Dropbox/workspace/test/target/scala-2.10/api...
[info] Packaging /Users/apotapov/Dropbox/workspace/test/target/scala-2.10/test_2.10-1.0-SNAPSHOT.jar ...
[info] Done packaging.
[error] /Users/apotapov/Dropbox/workspace/test/app/com/bvg/controllers/json/serializers/TestJacksonModule.java:17: not found: type SetupContext
[error]     public void setupModule(SetupContext context) {
[error]                             ^
model contains 120 documentable templates
[error] one error found
[error] (compile:doc) Scaladoc generation failed
[error] Total time: 10 s, completed Apr 9, 2014 4:46:07 PM

这是我的 build.sbt

name := "test"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
    javaJdbc,
    cache,
    "be.objectify" %%                       "deadbolt-java" %               "2.2.1-RC2",
    "com.google.guava" %                    "guava" %                       "r09",
    "com.codahale.metrics" %                "metrics-core" %                "3.0.1",
    "org.springframework" %                 "spring-context" %              "4.0.2.RELEASE",
    "org.springframework.data" %            "spring-data-jpa" %             "1.5.1.RELEASE",
    "postgresql" %                          "postgresql" %                  "9.1-901.jdbc4",
    "org.hibernate" %                       "hibernate-entitymanager" %     "4.3.4.Final",
    "com.typesafe" %%                       "play-plugins-redis" %          "2.2.0",
    "com.typesafe.play" %%                  "play-cache" %                  "2.2.0",
    "com.restfb" %                          "restfb" %                      "1.6.11"
)

resolvers += Resolver.url("Objectify Play Repository", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns)

resolvers += Resolver.url("Objectify Play Snapshot Repository", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns)

resolvers += "Sedis Repo" at "http://pk11-scratch.googlecode.com/svn/trunk"

play.Project.playJavaSettings

这是有问题的文件:

package com.bvg.controllers.json.serializers;

import java.util.Map;

import com.fasterxml.jackson.databind.module.SimpleModule;

public class TestJacksonModule extends SimpleModule {
    private static final long serialVersionUID = 1L;

    protected Map<Class<?>, Class<?>> mixIns;

    public FeudJacksonModule() {
        super("FeudJacksonModule");
    }

    @Override
    public void setupModule(SetupContext context) {
        super.setupModule(context);

        for (Map.Entry<Class<?>, Class<?>> mixIn : mixIns.entrySet()) {
            context.setMixInAnnotations(mixIn.getKey(), mixIn.getValue());
        }
    }

    public void setMixIns(Map<Class<?>, Class<?>> mixIns) {
        this.mixIns = mixIns;
    }
}

我也尝试添加 jackson-databind 依赖,但似乎没有帮助:"com.fasterxml.jackson.core" % "jackson-databind" % "2.2.2"

我已经搜索了所有内容,但似乎无法找到导致此问题的原因。这里有一个相关的讨论:

https://groups.google.com/forum/#!topic/play-framework/aa90AAp5bpo

它提到禁用 scaladoc 生成。不确定这是否是原因或如何使用 build.sbt 而不是 Build.scala 来解决这个问题,正如讨论所建议的那样。任何见解都值得赞赏。

【问题讨论】:

标签: playframework jackson playframework-2.2


【解决方案1】:

看来您需要做的就是将以下行添加到 build.sbt 的末尾:

sources in doc in Compile := List() 

希望这可以避免其他人头疼..

【讨论】:

  • 谢谢!经过几次重构后才得到这个奇怪的错误。这对我来说就像一个魅力。
  • 虽然我想了解它的作用
  • 谢谢!因此至少节省了几个小时。
  • 这是救命稻草。
  • 谢谢,它刚刚解决了这个问题。我认为我们用这种方式禁用了文档打包,对吗?
猜你喜欢
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 2021-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多