シナリオ
Maven Ant Task を使用してartifact:deploy
いるときに、エラーが発生しましjava.lang.OutOfMemoryError: Java heap space
た。
展開するファイルのサイズが 25 MB を超える場合にのみエラーが発生します。アーティファクトのサイズが 50 MB 以下です。
理由は何でしょうか?そして、それを修正するにはどうすればよいですか?
コードスニペット
<artifact:deploy file="@{app.name}.jar">
<pom file="@{pom.file}"/>
<remoteRepository url="http://xxx.com:xxx/xxx-webapp/content/repositories/xxx-releases/">
<authentication username="xxx" password="xxx" />
</remoteRepository>
</artifact:deploy>
既存のソリューション
ほとんどのオンライン結果は、これがJVM のデフォルトのヒープ サイズに関係しており、適切な環境変数を設定することで修正できることを示しています。
ただし、Ant スクリプトを任意のコンピューターで実行し、環境変数に依存しないようにしたいと考えています。
POM
Ant スクリプトまたはファイルでこれらの設定を構成する方法はあり ますか?
編集
install-provider
タスク (http://maven.apache.org/ant-tasks/examples/install-deploy.html) は一部の人には有効なようです。使用中にダウンロードエラーが発生し続けます。
答え
Maven Ant タスクを別のマシン (JVM ヒープにより多くのメモリが割り当てられている可能性があります) で実行すると、Java ヒープ エラーが発生しないことがわかりました。したがって、@Attila が言及した解決策は試していませんが、正しい方向に進んでいるようです。