Play 2.2启动DefaultApplication而不插件

时间:2014-05-13 14:05:29

标签: java playframework-2.2

我想在使用DefaultApplication播放Web服务器的单独过程中运行一些定期作业。例如:

public static void main(String[] args) throws OAuthException, IOException {
    File conf = new File(args.length == 0 ? "datamerge" : args[0]);

    Application application = new DefaultApplication(conf,
            DataMerge.class.getClassLoader(), null, Mode.Prod());

    Play.start(application);

    //
    // do something here

    Play.stop();

}

这样可以,但是有问题。 Play 2.2“web”应用程序需要一些插件,这些插件通过play.plugins文件注册。期刊作业本身不需要任何这些插件,所以我不希望它们被加载。由于DefaultApplication创建了默认应用程序,因此可以在类路径中找到play.plugins并加载插件。如何禁用此功能?

大多数插件都可以通过.conf文件进行配置,因此,如果使用DefaultApplication运行作业,则实际上不需要此配置。在运行作业时,我通过JVM参数传递.conf文件,插件已经注册(我不想发生),并且一个接一个地抱怨配置丢失...

是否有从DefaultApplication中删除插件的解决方法?

1 个答案:

答案 0 :(得分:2)

也许您可以创建自己的DefaultApplication版本但省略特性WithDefaultPlugins?

查看它的来源,它应该是非常自我解释的。 https://github.com/playframework/playframework/blob/master/framework/src/play/src/main/scala/play/api/Application.scala#L402