gpt4 book ai didi

java - 从 Play 框架中的另一个目录加载包

转载 作者:太空宇宙 更新时间:2023-11-04 12:23:56 26 4
gpt4 key购买 nike

默认情况下,我的所有 Controller 和应用程序文件都位于 app 目录中。我想将应用程序特定文件保留在 src 目录中,并使用 app 来获取框架特定代码。

所以我有一个 Controller 位于 app/controllers/HomeController.java

package controllers;

import chat.model.Message;
import play.mvc.*;

import views.html.*;

public class HomeController extends Controller {
public Result index() {
Message message = new Message(new String("Hello world!"), new String("John"));
return ok(index.render(message.message));
}
}

我在 src/chat/model/Message.java

中有 Message 类
package chat.model;

public class Message
{
public String message;
public String author;

public Message(String message, String author) {
this.message = message;
this.author = author;
}
}

现在,我像 Play 框架推荐的那样使用 Lightbend 的激活器,但出现错误package chat.model does not exit。我确信这是一个愚蠢的问题,但我正在努力解决它。

我正在使用 IntelliJ,并且我已将 src 标记为源根,并且 IntelliJ 可以看到此类(它不会显示任何错误)

为什么不起作用?

最佳答案

发生这种情况是因为您已将 IntelliJ IDEA 配置为识别新的源目录,但尚未将此新目录添加到 sbt 配置中。

如何确认?在应用程序的根目录中运行以下命令:

sbt "show unmanagedSourceDirectories"

最后一行类似于:

[info] List(/your/app/directory/app-2.11, /your/app/directory/app, /your/app/directory/app)

这是 sbt 识别的源目录列表。要添加另一个目录(src),只需 follow the docs并将以下行添加到您的 build.sbt 文件中:

unmanagedSourceDirectories in Compile += baseDirectory.value / "src"

之后,将项目重新导入 IntelliJ(如果您不使用自动导入功能),它将自动识别 src 目录。最后,您还可以使用default sbt layout用于您的 Play 应用程序。

关于java - 从 Play 框架中的另一个目录加载包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38556816/

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