Подтвердить что ты не робот

Как очистить кеш зависимостей Heroku (неуправляемые зависимости maven)


Я должен использовать неуправляемую зависимость SNAPSHOT в моем приложении java/maven heroku. Я делаю это с помощью локального проекта-хранилища maven, как описано в этой статье.

Heroku кэширует зависимости между сборками. К сожалению, Heroku не замечает, изменилась ли версия SNAPSHOT и продолжает использовать кэшированную зависимость. Это приводит к ошибкам компиляции, поскольку я зависим от изменений в версии SNAPSHOT.

Есть ли способ вручную или автоматически очистить этот кэш зависимостей?

Я нашел этот плагин maven (он делает локальную сборку и подталкивает полученные артефакты к герою), но это не так, как я хочу сделайте это.

Можно было бы утверждать, что его плохая практика заключается в том, чтобы использовать эту зависимость моментального снимка в первую очередь, но я думаю, что существуют другие более или менее веские причины для очистки денежных средств, например. утечка памяти, поскольку неуправляемые зависимости даже не удаляются, если они удалены из локального репозитория проекта.

Я ценю ваш ответ

4b9b3361

Ответ 1

Там ветвь java buildpack, который очищает кеш-память. Чтобы использовать его, настройте приложение для использования ветки 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

Ответ 2

Войдите в консоль heroko, перейдите в каталог хранилища git вашего приложения, запустите следующие команды и попробуйте снова нажать на репозиторий heroku git

$ heroku config:set MAVEN_CUSTOM_GOALS="clean package"
$ heroku config:set MAVEN_CUSTOM_OPTS="--update-snapshots -DskipTests=true"

Теперь он будет загружать последние SNAPSHOT из репозитория перед сборкой. Подробнее см. сборщик герой для java.

Вы также можете настроить пользовательский settings.xml для своего maven, обратитесь к документации heroku.

Ответ 3

Я написал плагин с альтернативным приемом: объединение контейнера + изображение войны в базовое изображение хранилища git (на данный момент его либо winstone, и/или причал), который помещается в Heroku, тем самым облегчая разверните (я думаю):]

http://cedarhero.ingenieux.com.br/heroku-maven-plugin/

Ответ 4

Это не отвечает на вопрос напрямую, но если у вас есть такая же проблема с проектом 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}]]