Я пытаюсь очистить локальный репозиторий зависимости от проекта, прежде чем запускать его, чтобы убедиться, что каждая требуемая зависимость находится в центральном репозитории и загружается из него.Что такое зависимость от Maven: предполагается очистить локальный репозиторий?
В папке проекта (содержащий pom.xml), я запускаю следующую команду:
mvn clean dependency:purge-local-repository -DreResolve=false -Dverbose=true
POM проекта очень проста и просто заявленную зависимость к JUnit: JUnit: 3.8.1
вывод данной команды дают мне:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building corelib-api 0.1.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ corelib-api ---
[INFO] Deleting d:\Users\fpaillard\git-repositories\TEST_CORELIB\corelib-api\target
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building corelib-api 0.1.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.1:purge-local-repository (default-cli) @ corelib-api ---
[WARNING] Missing POM for junit:junit:jar:3.8.1
[INFO] Skipping: corelib-api. It cannot be resolved.
[INFO] Nothing to do for project: test:corelib-api:jar:0.1.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.953s
[INFO] Finished at: Mon May 14 11:34:40 CEST 2012
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------
Когда я смотрю в локальном хранилище (путь проверяется с mvn help:effetive-settings
), JUnit, ни РОМ JAR-файлы все еще находятся в .m2/repository/junit/junit/3.8.1
папка.
Это не dependency:purge-local-repository
Предполагается удалить его?
Я не понимаю ПРЕДУПРЕЖДЕНИЕ вышеприведенного вывода. Почему junit: junit: jar: 3.8.1 POM отсутствует? Он по-прежнему присутствует в .m2/repository/junit/junit/3.8.1/junit-3.8.1.pom
Проблема связана с линией INFO Skipping: corelib-api. It cannot be resolved.
? corelib-api
- это имя артефакта проекта, в котором я бежал mvn dependency:purge-local-repository
против.
Работает ли mvn чистый пакет без предупреждения? Кроме того, чтобы проверить это, лучше всего просто удалить весь локальный репозиторий и сделать mvn чистый пакет ... если это работает нормально, все в порядке, иначе что-то пропущено. Этот вид проверки обычно должен выполняться системой CI (называемой: * clean build *). После перечитывания документов это говорит. Это приведет к повторному решению проблем вашего проекта. Существует возможность подавить это (http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html). – khmarbaise
@khmarbaise 'mvn clean package' работает без предупреждения до и после подавления локальной папки репозитория. Я активировал опцию, чтобы избежать повторного разрешения зависимостей ('-DreResolve = false') –