Как очистить кеш зависимостей Heroku (неуправляемые зависимости maven)
Я должен использовать неуправляемую зависимость SNAPSHOT в моем приложении java/maven heroku.
Я делаю это с помощью локального проекта-хранилища maven, как описано в этой статье.
Heroku кэширует зависимости между сборками. К сожалению, Heroku не замечает, изменилась ли версия SNAPSHOT и продолжает использовать кэшированную зависимость. Это приводит к ошибкам компиляции, поскольку я зависим от изменений в версии SNAPSHOT.
Есть ли способ вручную или автоматически очистить этот кэш зависимостей?
Я нашел этот плагин maven (он делает локальную сборку и подталкивает полученные артефакты к герою), но это не так, как я хочу сделайте это.
Можно было бы утверждать, что его плохая практика заключается в том, чтобы использовать эту зависимость моментального снимка в первую очередь, но я думаю, что существуют другие более или менее веские причины для очистки денежных средств, например. утечка памяти, поскольку неуправляемые зависимости даже не удаляются, если они удалены из локального репозитория проекта.
Я ценю ваш ответ
Ответы
Ответ 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}]]