现在看来,我的问题有了答案。
aws.push不仅适用于 PHP 应用程序,还可以用于部署 Java 和 PHP 应用程序。我已经成功地与Apache Ant一起使用,并且该设置在我们的 UAT 环境中运行良好。
我开发了一个 shell 脚本,它执行以下操作:
- 从 subversion 存储库中查看源代码
- 使用 Apache Ant 构建和创建 WAR 文件
- 将 WAR 文件分解到 git 存储库(使用 Amazon EB 工具初始化)
- 将分解后的文件添加到 git 存储库并提交更改。
- 使用 aws.push 将 war 文件部署到 EB。
(我现在无法访问 shell 脚本,所以我可能无法提供详细的命令)
这是基本形式的Shell脚本
source_dir="/home/libregeek/myapp"
workingcopy="$source_dir/trunk"
gitrepo="$source_dir/gitrepo"
cd $workingcopy
svn update
ant createwar
cd $gitrepo
unzip -o $workingcopy/build/myapp.war
git add *
git commit -m "Deployed new version"
git aws.push
此脚本存在与陈旧类文件相关的已知问题。要摆脱它,您可能必须清理 git repo。
这是蚂蚁目标:
<target name="createwar" depends="build" description="Create WAR file for deployment">
<war destfile="${alternate.path}/${name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</war>
</target>