小编bie*_*ior的帖子

播放2.0和SNAPSHOT依赖项

我正在混合构建环境中设置我的第一个播放应用程序.我的公司使用maven来处理所有事情(到目前为止),并且我正在尝试让我的播放应用程序与其余的工件进行良好的交互.

有没有办法让ivy/sbt/play以类似于maven的方式处理SNAPSHOTs - 即,始终从远程存储库更新它们(例如,在构建工作者上)或使用本地.m2存储库直到依赖'过期'然后从服务器刷新它.

我在Build.scala中为一个工件声明了一个SNAPSHOT依赖项,我希望这个依赖项的本地更新对我的play项目可见.在maven方面,我做了以下几点

mvn clean install
Run Code Online (Sandbox Code Playgroud)

其中(当然)构建并将我的外部工件安装到我的本地maven存储库(在〜/ .m2/repository).我希望我的播放项目能立即看到这些更改,但我无法弄清楚如何告诉sbt/play不缓存SNAPSHOT.无论我做什么,这种依赖关系永远不会在游戏中刷新 - 我必须进入实际的游戏常春藤缓存并手动删除依赖关系以获取任何更改.理想情况下,我希望sbt/ivy只是解析我本地maven仓库的路径,而不是在内部缓存它.我的Build.scala中有以下内容

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
    resolvers += "Local Maven Repository" at "file://" + Path.userHome.absolutePath + "/.m2/repository",
    testOptions in Test := Nil
)
Run Code Online (Sandbox Code Playgroud)

当我在游戏中运行构建时,它正确使用此repo,但随后将结果缓存在常春藤缓存中.有没有咒语我可以告诉Ivy/sbt不这样做?也许在ivysettings.xml中有什么东西?

scala ivy sbt playframework playframework-2.0

14
推荐指数
2
解决办法
4100
查看次数

使用Play 2对URL进行编码

如何使用Play 2在模板中编码URL?

我搜索一个这样的帮手:

<a href="@urlEncode(name)">urlEncode doesn't work now</a>
Run Code Online (Sandbox Code Playgroud)

我找到了一个pull请求,但这似乎不适用于实际的play 2.0.3版本.

urlencode playframework playframework-2.0

14
推荐指数
2
解决办法
1万
查看次数

如何在Play Framework中使用持久性H2数据库而不是内存中

Java Todo List教程中使用的H2数据库如下:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
Run Code Online (Sandbox Code Playgroud)

如何修改配置文件以使用持久数据库而不是内存中版本.我是否需要设置完全独立的数据库,还是可以修改db.default.url属性?

我正在玩Play!2.0.3.

database h2 playframework playframework-2.0

14
推荐指数
1
解决办法
1万
查看次数

Play Framework 2.3和GAE - Google App Engine

是否有使用Play Framework 2.3和Google App Engine的示例应用程序?

google-app-engine playframework playframework-2.3

13
推荐指数
1
解决办法
4859
查看次数

如何使用Play Framework 2.0创建全局变量

如何使用Scala在Play Framework 2.0中创建全局对象/变量?

我想创建一个曾经实例化的对象,可以在多个控制器动作之间保持不变,这样不同的动作仍然可以调用同一个对象(因为初始化对象非常昂贵).

这可能不存储到数据库中吗?我尝试将对象粘贴到onStart方法的Global对象中,如下所示:

http://www.playframework.org/documentation/2.0/ScalaGlobal

这是我的代码:

(在根应用程序文件夹中)

object Global extends GlobalSettings {

  override def onStart(app:Application) {
    var foo = new Foo
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

在我的控制器操作中,我尝试按名称调用变量,但它不起作用.

scala playframework playframework-2.0

12
推荐指数
1
解决办法
7897
查看次数

Scala Play框架:编译的css文件的重复映射

我完成了todolist教程并试图通过在app/assets/stylesheets中添加一个main.less样式表来扩展它.但是,当我尝试使用main.less中的任何规则或没有规则在浏览器中查看项目时,我得到此错误,浏览器很好地显示:

意外的异常

RuntimeException:重复映射:/Users/franklinpearsall/Documents/Programming/play-2.0.4/todolist/target/scala-2.9.1/classes/public/stylesheets/main.css

/Users/franklinpearsall/Documents/Programming/play-2.0.4/todolist/public/stylesheets/main.css

/Users/franklinpearsall/Documents/Programming/play-2.0.4/todolist/target/scala-2.9.1/resource_managed/main/public/stylesheets/main.css

首先,在target/scala-2.9.1/classes中的css文件似乎很奇怪.为什么会这样?我用Google搜索,找不到任何相关内容.任何帮助深表感谢!

css scala less sbt playframework-2.0

12
推荐指数
1
解决办法
2896
查看次数

在使用Java启动应用程序之前检测Play 2.2.x模式

我想根据运行的环境将我的播放应用程序指向特定的应用程序配置文件.有三个,它们对应于标准播放状态:

  • application.dev.conf
  • application.test.conf
  • application.prod.conf

一个同事共享了一个执行此操作的方法,该方法需要设置OS环境变量.

我想消除设置OS变量的需要.我的偏好是使用Play在启动时使用的任何内容来了解​​它所处的模式.

例如,如果play run从命令行执行,则输出的一部分是"[info] play - Application started (Dev)"

我想在我的Global.java中使用这些信息,我在其中覆盖onLoadConfig,如下所示:

public Configuration onLoadConfig(Configuration baseConfiguration, File f, ClassLoader loader) {
    String playEnv=<some static method to get mode>;        
    Config additionalConfig = ConfigFactory.parseFile(new File(f,"conf/application."+playEnv+".conf"));
    Config baseConfig = baseConfiguration.getWrappedConfiguration().underlying();
    return new Configuration(baseConfig.withFallback(additionalConfig));
}
Run Code Online (Sandbox Code Playgroud)

我发现的一切都是在应用程序启动如何使用isDev(),isTest(),isProd().

当我覆盖Global.java中的onLoadConfig时,是否存在提供模式的静态方法?

java playframework playframework-2.2

12
推荐指数
1
解决办法
2338
查看次数

如何在没有指定证书文件的情况下代理SSL后端?

我有一个Play 2.1.x应用程序,它使用JKS签名.这取决于,运行和可用的domain.com:9443,我要代理其与nginx的,因为会出现在同一台机器上更多的应用程序,(因此不能只是口运行443),我增加了nginx的配置中,希望proxy_passhttps让我只是代理它到客户端

upstream backend-secure {
    server 0.0.0.0:9443;
}

server {
        listen 443 ssl;
        server_name domain.com;

        proxy_redirect          off;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;


        location / {
                proxy_pass  https://backend-secure;
        }

}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当https://domain.com我尝试在浏览器中打开时,我只能登录nginx/error.log:

服务器在SSL端口握手时定义没有"ssl_certificate",客户端:123.123.123.123,服务器:0.0.0.0:443

有没有办法让它工作或只有选项是使用nginx SSL +使用http后端的常用方法?

编辑:如果重要的话,这是EV,多域证书.

ssl reverse-proxy nginx playframework-2.1

12
推荐指数
1
解决办法
2万
查看次数

播放2.4:如何在单元测试期间禁用路由文件加载?

背景:我使用Play 2.4(Java)和InjectedRoutesGenerator以及Guice模块来配置各种依赖项.但在单元测试期间,FakeApplication正试图通过注入器从路径文件加载所有控制器,并且由于单元测试环境中不可用的外部依赖性,其中一些控制器失败.

如何在从play.test.WithApplication扩展的单元测试期间禁用默认路由文件处理?或者如何用自定义路由文件替换默认路由?

我试着使用这里引用play.http.router配置选项覆盖,但是Router not found我尝试的任何内容都会出错.显然我犯了一些错误,我不知道在哪里.

我不太了解配置参考中引用的my.application.Router和conf/my.application.routes之间的链接.除了routes不编译之外的路由文件.

playframework playframework-2.4

12
推荐指数
1
解决办法
2241
查看次数

我可以在Play Framework上的模板/视图中调用会话吗?

我是使用Play Framework 2.0的新手(我正在使用Scala)并对会话有疑问.

我来自Ruby on Rails背景,因此我倾向于考虑我在Play Framework中学习的关于Ruby on Rails的所有内容.

考虑到这一点,当我在视图中时,有没有办法让我调用存储在Session中的东西?

如果我在会话中存储了"hello" - >"world",我希望能够执行类似@ session.get("hello")的操作,并且能够在视图中使用"world".这可能吗?

我看到的另一个选项是将值存储在控制器中的变量中,并通过执行类似OK(var)的操作将其传递给视图,但这种方式似乎有点笨重,特别是如果我开始使用更多变量.

谢谢!

scala playframework playframework-2.0

11
推荐指数
2
解决办法
2万
查看次数