4

私のチームは、Amazon Elastic Beanstalk にデプロイされる Java ウェブ アプリケーションを開発しています。開発環境はEclipseとSubversionです。彼らは Eclipse プラグインを使用してデプロイできましたが、デプロイを自動化するために、Amazon が提供する CLI ツールを試しています。

基本的に、Subversion リポジトリを git リポジトリに変換した後、 Amazon ブログの投稿で詳しく説明されている手順に従いました。このSO回答で説明されている手順に従いました

上記の手順を実行した後、コマンド git aws.pushを発行しました。これは正常に完了しました。しかし、アプリケーションの実行中にエラーと . そこで、Beanstalk 環境から war ファイルをダウンロードしたところ、フォルダ構造がめちゃくちゃで、ソース ファイルがクラス ファイルにコンパイルされていないことがわかりました。ソースファイルがそのままアップロードされているようです。

aws.push を使用する前に (ant を使用して) アプリケーションをビルドする必要がありますか? または、何か不足していますか?

4

3 に答える 3

6

今、私は私の質問に対する答えを持っているようです。

aws.pushは PHP アプリケーションだけでなく、Java および PHP アプリケーションのデプロイにも使用できます。私はApache Antと一緒にうまく使用しており、セットアップは UAT 環境で正常に動作します。

次のことを行うシェルスクリプトを開発しました。

  1. Subversion リポジトリからソース コードをチェックアウトする
  2. Apache Ant を使用してビルドおよび作成された WAR ファイル
  3. WAR ファイルを git リポジトリに展開します (Amazon EB ツールを使用して初期化)
  4. 展開されたファイルを git リポジトリに追加し、変更をコミットします。
  5. aws.push を使用して、war ファイルを EB にデプロイします。

(現在シェルスクリプトにアクセスできないため、詳細なコマンドを提供できない場合があります)

基本的な形式のシェルスクリプトは次のとおりです

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 リポジトリをクリーンアップする必要がある場合があります。

アリのターゲットは次のとおりです。

<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>
于 2012-10-09T12:24:12.470 に答える
-1

私は同じ問題を抱えていました.gitメソッドはPHPアプリでのみ動作するように設計されているようです.

私は現在、Eclipse を使用していないため、他の Java ベースのツールを探しています。また、AWS コンソールはリリースを管理する方法が不格好です (そして、アップロードが非常に遅い)。

于 2012-07-27T18:50:39.177 に答える