2012-06-05 4 views
0

Я изучаю maven и пытаюсь понять порядок вещей. Как я понимаю, mvn clean install строит репозиторий со стандартными банками, где install создает .zip, который мне понадобится позже.mvn clean install, mvn install: install-file order?

Я хочу использовать свои пользовательские банки, которые я называю mvn install:install-file, но когда я запускаю это до install, я получаю ошибки cannot find symbol. Я предполагаю, что мои пользовательские банки (которые не содержат эти классы) перезаписывают некоторые банеры по умолчанию? Я не могу найти эти классы где-нибудь в своей файловой системе, поэтому я предполагаю, что они уже упакованы в 1 из стандартных банок. Как я могу обойти это?

Также, какой заказ я должен делать? Все, что я хочу, это окончательный .zip, который включает в себя пользовательские банки?

ответ

0
  1. mvn install - строит и пакеты исходного кода и копии (устанавливает) артефакт в локальный репозиторий, который $USER_HOME/.m2/repository

  2. Это трудно сказать, что там происходит, не глядя на команду, которую вы введённый текст и трассировку ошибки, которую вы получили. При этом install-file должен скопировать артефакт в местное репо при соответствующей иерархии. Это не более того. Правильный синтаксис будет:

    mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ 
        -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> 
    
  3. Как правило, вам просто нужно запустить install:install-file для всех пользовательских зависимостей один раз, и, прежде чем выполнить mvn install.

  4. Если ваши пользовательские банки имеют одинаковые координаты - artifactid, groupid и версию как некоторые из зависимостей в вашем pom.xml, а ваши пользовательские банки не имеют того класса, который используется в вашем исходном коде - ну, вы получаете ошибку ,

относятся: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

+0

Я ссылаюсь на .pom и .jar, когда вызываю файл install. Я делаю это для 2 различных баннеров. Проблема в том, что когда я, наконец, пытаюсь «mvn install», это ошибки при отсутствии поиска класса (не существует в файловой системе, но это зависимость в исходном .pom). Когда я очищаю репозиторий, «mvn clean install» отлично работает, это просто, когда я вызываю install-файл, это терпит неудачу. Убирает ли файл перед установочным файлом, возможно ли, что у меня есть какая-либо зависимость в «новых» файлах pom, которые я устанавливаю? – user12740

0

Относительно к maven-install-plugin website они упоминают, как: -

установки: установка-файл:в основном используется для установки снаружи созданный артефакт в местный репозиторий вместе с его POM. В этом случае информация о проекте может быть взята из необязательно заданного pomFile, но также может быть задана с использованием параметров командной строки.

Это означает, что артефакт должен быть создан перед использованием этой команды. Если вы хотите развернуть свежий скомпилированный код в местном репозитории, просто используйте mvn clean install.

Для получения дополнительной информации о последовательности и жизненном цикле обратитесь к Introduction to the Build Lifecycle. Надеюсь, это поможет.

С уважением,

Charlee Ch.

Смежные вопросы