Проблема сборки Maven с Hibernate для Windows - PullRequest
0 голосов
/ 23 апреля 2010

Я получаю ошибки сборки для моего проекта с включенным Maven, связанного с расширением Hibernate.- Это очень простое приложение, и я смог решить эту проблему на своем компьютере с Linux, вручную установив некоторые необходимые артефакты:

mvn install:install-file -DgroupId=javassist -DartifactId=javassist 
-Dversion=3.9.0 -Dpackaging=jar -Dfile=foo.jar

Это сработало (Hibernate как набор требуемых команд).*

Но в случае с Windows все иначе.Как добавить зависимости вручную в Maven в Windows?

    1) org.hibernate:hibernate:jar:3.3.2

      Try downloading the file manually from the project website.

      Then, install it using the command: 
          mvn install:install-file -DgroupId=org.hibernate -DartifactId=hibernate -Dversion=3.3.2 
-Dpackaging=jar -Dfile=/path/to/file

   2) javassist:javassist:jar:3.9.0

Могу ли я автоматизировать эту громоздкую ручную установку зависимостей для моих коллег на их компьютерах с Windows?Есть ли полезные инструменты или графический интерфейс, которые могут выполнять эти задачи?Лучше всего, если Maven сделает все автоматически.Я не слишком знаком с ним, струя.

Спасибо за ответы.

Ответы [ 3 ]

1 голос
/ 23 апреля 2010

Во-первых, вы можете вручную установить артефакты в свой локальный репозиторий Maven в Windows точно так же, как вы это делали в своей Linux-системе.

В идеале, как вы говорите, Maven сделает тяжелую работу за вас. Обычно вам не нужно устанавливать jar вручную: для большинства библиотек Maven будет знать, какие зависимости есть у каждого jar. По умолчанию Maven будет проверять центральное хранилище и несколько других. Чтобы получить доступ к банкам в других репозиториях, просто добавьте их в свой POM следующим образом:

  <project>
      ...
      <repositories>
          <repository>
              <id>jboss.maven2.repo</id>
              <name>JBoss Maven Repo</name>
              <url>http://repository.jboss.com/maven2</url>
          </repository>
          <!-- other repositories here -->
      </repositories>
      ...
  </project>

Репозиторий JBoss, упомянутый выше, является хорошим дополнением. У него много общих jar-файлов, в том числе jibernate-версия, о которой вы упоминали выше. Ссылка на это в вашем pom.xml, как это:

<dependencies>
    <!-- ... -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.3.2.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.4.0.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>3.3.0.ga</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.4.0.GA</version>
    </dependency>
</dependencies>

После добавления этих зависимостей Maven также загрузит библиотеки, от которых зависят эти библиотеки и т. Д. (Включая библиотеку Javassist в вашем примере).

Наконец, как уже упоминалось в другом ответе, если у вас есть много сторонних библиотек для установки для вашего проекта, которых нет в других хранилищах, вы можете установить менеджер хранилища, например Nexus, Artifactory или Archiva , что позволит вам выполнять упомянутые вами команды установки через веб-интерфейс.

1 голос
/ 23 апреля 2010

Мне удалось решить эту проблему на моем компьютере с Linux, вручную установив некоторые необходимые артефакты (...)

Установка артефакта вручную - плохая практика (из-за этого сборка становится непереносимой), и на самом деле нет смысла устанавливать искомые артефакты вручную, они оба доступны в JBoss репозиторий . Итак, добавьте его в список «объявленных» репозиториев:

<project>
  ...
  <repositories>
    <repository>
      <id>repository.jboss.org</id>
      <name>Jboss Repository for Maven</name>
      <url>http://repository.jboss.org/maven2</url>
    </repository>
  </repositories>
  ...
</project>

А затем объявите следующие зависимости:

<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.3.2.GA</version>
  </dependency>
  <dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.9.0.GA</version>
  </dependency>
</dependencies>

Обратите внимание на зависимость от hibernate-core (http://repository.jboss.org/maven2/org/hibernate/hibernate/3.3.2.GA/ содержит только пом).

1 голос
/ 23 апреля 2010
  1. Вы можете использовать mvn install:install-file на вашем компьютере с Windows для установки зависимостей и в локальный репозиторий
  2. Возможно, вы захотите изменить свой settings.xml, чтобы добавить дополнительные зеркала репозитория, чтобы вы не полагались только на центральную часть. Проверьте jboss, java.net и т. Д. Вы также можете настроить свой собственный менеджер хранилища (например, Nexus ) для обработки зеркалирования, хранения артефактов вашей команды и т. Д .; а затем просто укажите каждую машину разработчика в вашем хранилище.

См. Управление репозиторием с Nexus и Причины использования диспетчера репозитория для получения дополнительной информации.

...