14


java/maven heroku アプリで管理されていない SNAPSHOT 依存関係を使用する必要があります。この記事で説明されているように、プロジェクト ローカルの Maven リポジトリを使用してこれを行います

Heroku はビルド間の依存関係をキャッシュします。残念ながら、Heroku は SNAPSHOT バージョンが変更されても、キャッシュされた依存関係を使用し続けても通知しません。これは、SNAPSHOT バージョンの変更に依存しているため、コンパイル エラーにつながります。

この依存キャッシュを手動または自動で消去する方法はありますか?

このMavenプラグインを見つけました(ローカルビルドを行い、結果のアーティファクトをherokuにプッシュします)が、実際にやりたい方法ではありません。

そもそもこのスナップショットの依存関係を使用するのは悪い習慣だと主張することもできますが、管理されていない依存関係がプロジェクトのローカルから削除されても削除されないため、ストレージのリークなど、キャッシュをクリーニングする正当な理由は他にもあると思います。リポジトリ。

私はあなたの答えに感謝します

4

4 に答える 4

27

Maven キャッシュをクリアするJava ビルドパックのブランチがあります。これを使用するには、ブランチを使用するようにアプリを構成します。cache_clear

heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-java.git#cache_clear

===更新===

アプリのキャッシュをクリアするプラグインがあります。それをインストールして、purge-cacheコマンドを実行します。

$ heroku plugins:install https://github.com/heroku/heroku-repo.git

$ heroku repo:purge_cache -a appname

于 2013-03-19T01:47:49.683 に答える
0

これは質問に直接答えるものではありませんが、Clojure プロジェクト (Leiningen を使用) で同じ問題が発生している場合は、ビルドごとにキャッシュをパージするよりも、これを処理するためのより良い方法があります::update :always作業しているリポジトリのプロパティを使用します。 . ( https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L91 )

:repositories [["releases" {:url "http://blueant.com/archiva/internal"
                            ;; How often should this repository be checked for
                            ;; snapshot updates? (:daily, :always, or :never)
                            :update :always}]]
于 2015-12-23T01:20:48.947 に答える