бульдозер с maven

Я хотел загрузить последнюю версию картографа Dozer с github, но не нашел jar.

Есть файл pom.xml, и я пытаюсь скомпилировать его с помощью команды mvn package. Я также добавил все зависимости в файл pom.xml. Он создал dozer-5.5.0-SNAPSHOT.jar.

Затем я импортировал эту банку в свой проект, но она выдает мне java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory.

Я также пытался создать проект POM в netbeans и построить его с зависимостями. После импорта в мой проект он выдает то же исключение.

У меня нет опыта работы с maven. Как я могу получить правильный файл JAR?


person misco    schedule 23.12.2012    source источник


Ответы (4)


Угадайте, что ваш dozer-package зависит от slf4j, верно?

Затем вы должны проверить этот плагин Maven: Maven-Assembly-Plugin

Это поместит ваши необходимые зависимости в банку.

Здесь вы можете прочитать, как его использовать

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    version>2.4</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
      <archive>
        <manifest>
        <mainClass>your.main.class</mainClass>
        </manifest>
      </archive>
    </configuration>
    <executions>
      <execution>
       <phase>package</phase>
         <goals>
        <goal>single</goal>
         </goals>
      </execution>
    </executions>
  </plugin>
</plugins>

Если вы хотите всегда выполнять сборку-плагин при вызове mvn clean package, добавьте это в свой maven-assembly-plugin:

 <executions>
      <execution>
        <id>make-assembly</id> <!-- this is used for inheritance merges -->
        <phase>package</phase> <!-- bind to the packaging phase -->
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
 </executions>
person xoned    schedule 23.12.2012
comment
да, у него есть зависимости от commons-beanutils, org.apache.commons, org.slf4j. Можете ли вы сказать мне, как я могу правильно получить значение для mainClass? - person misco; 23.12.2012
comment
Это ваш основной класс с квалифицированным именем. Я дал ссылку на сайт, где можно прочитать, как им пользоваться. Также сделал обновление моего ответа. - person xoned; 23.12.2012
comment
в файле pom.xml этот плагин включен, но без настройки и выполнения. Вот ссылка github.com/DozerMapper/dozer/blob/master/pom.xml - person misco; 23.12.2012
comment
Я тоже не могу его упаковать (отсутствуют зависимости). Но версия 5.3.2 (не совсем старая) доступна здесь: sourceforge.net/ проекты/дозер/файлы/дозер/1.0 - person xoned; 23.12.2012

У вас правильная баночка. Просто добавьте commons-beanutils lang и slf4j в свой проект с помощью dozer или добавьте эти библиотеки в качестве зависимостей maven.

person Dmitry Spikhalskiy    schedule 10.01.2013

JAR-файлы необходимы для зависимости Dozer.

введите здесь описание изображения

person shashi    schedule 04.04.2016

Сделайте запись в файле pom.xml. Убедитесь, что необходимые банки присутствуют.

  <dependency>
        <groupId>net.sf.dozer</groupId>
        <artifactId>dozer</artifactId>
        <version>5.3.1</version>
    </dependency>
      <properties>
<osgi.version>4.3.0</osgi.version>

person shashi    schedule 04.04.2016
comment
Он уже добавил банку. Это зависимости, которые отсутствуют. Особенно баночка общего пользования, где происходит исключение - person raikumardipak; 27.11.2017