我意识到,从文档(http://www.playframework.org/documentation/1.2.1/deployment),如果Play!框架已经安装并正确配置,那么创建一个可部署的war就像运行命令一样简单:
play war myapp -o myapp.war
但是如果Play!框架没有安装在目标机器上,并且要求从Ant或Maven构建脚本创建标准war ?如何创建构建脚本或pom文件来利用Play!框架API来生成所需的战争工件,而无需将框架永久地安装到目标机器上。这很容易做到吗?
不直接。如果您查看play war
命令的python脚本,您将看到进行了相当多的处理。
您可以将其复制到ANT或Maven脚本中,但这样就会失去对未来升级的向后兼容性。我建议要么确保包含相关的Play框架文件,以便可以完成构建,要么在中央构建服务器上进行WAR构建,并将WAR文件分发(或从CVS/SVN/GIT加载)到目标机器。
通常是这样做的:
- 构建Play应用程序并在安装Play的机器上生成WAR。
- 将Play生成的WAR部署到Maven存储库(最好是团队共享的Maven repo服务器,或者通过版本控制同步的本地Maven repo目录,或者只是将WAR签入版本控制,然后团队成员将通过mvn install安装到本地Maven repo)。 将WAR作为一个依赖项添加到Maven项目中,这样它就会被包含到构建中。
我不相信它会因为没有安装Play而试图构建一个Play应用程序WAR。WAR需要在安装Play的机器上生成,然后作为打包的WAR分发到其他机器上(最好通过共享的Maven repo服务器,如Archiva或Nexus)。
据我所知,Play框架与你的应用一起打包在war文件中。所以尝试在没有安装或可用Play的情况下构建似乎相当困难。