Scala 如何正确命名play应用程序的名称空间?

Scala 如何正确命名play应用程序的名称空间?,scala,playframework,Scala,Playframework,我启动了一个Play应用程序(如果你猜不到的话,这是我的第一个)。我在项目根目录中保留了:app和conf的标准结构。应用程序正下方的资源、控制器、模型和视图。例如,Application.scala属于“controllers”包。当我打包它时,它会创建一个名为MyAppName-1.0-SNAPSHOT.jar的jar。显然,如果我要部署到Nexus,这是行不通的 我试图将“app”(控制器、模型、视图)下的所有包重构为org.myorg.myappname,并将其严重破坏。关于如何将名称空

我启动了一个Play应用程序(如果你猜不到的话,这是我的第一个)。我在项目根目录中保留了:app和conf的标准结构。应用程序正下方的资源、控制器、模型和视图。例如,Application.scala属于“controllers”包。当我打包它时,它会创建一个名为MyAppName-1.0-SNAPSHOT.jar的jar。显然,如果我要部署到Nexus,这是行不通的


我试图将“app”(控制器、模型、视图)下的所有包重构为org.myorg.myappname,并将其严重破坏。关于如何将名称空间正确添加到我的应用程序中的任何提示?

我不完全确定我是否正确理解您的问题,但是:

关于要发布到nexus的工件

组织和工件名称实际上与它内部的包被调用没有任何关系。您可以使用
build.sbt
中的
name
organization
设置来设置它们。例如:

name := "amazeweb"
organization := "com.mycompany"
version := "1.0-SNAPSHOT"
这就像在maven项目的
pom.xml
中设置相应的属性一样

关于套餐

如果您的代码将与许多其他代码共存,那么在包中使用深度名称空间是有意义的。例如,如果您正在编写一个库,但在Java语言中,它已成为所有事物的常见做法


在一个webapp中,代码更像是叶子,它将运行,而不是针对它进行编码,因此不应该真的有冲突包的问题。这就是play project通常只使用几个浅层软件包的原因。

如果这是您希望这样做的唯一原因,那么在sbt构建脚本中设置自定义jar名称就不容易了吗?谢谢!组织参数起了作用。我想这会非常简单(比安装play2 maven插件和管理build thru maven更简单)。