2015-11-27 3 views
2

Я пишу приложение Spring, и у меня есть две внешние банки. Он работает в среде IDE, но когда я создаю исполняемую банку с maven, она терпит неудачу с ошибкой java.lang.NoClassDefFoundError: к моим внешним банкам. Я googled, но я все еще не знаю, что делать. Пожалуйста, помогите мне. Моя зависимость в файле pom:Maven: Как включить мою внешнюю банку в сборку исполняемого jar

<dependency> 
      <groupId>com.myapp.myappawsprovider</groupId> 
      <artifactId>MyAppProvider</artifactId> 
      <version>1.0.0</version> 
      <scope>system</scope> 
      <systemPath>/Users/Projects/Java/MyApp/MyAppProvider/target/MyAppProvider Provider-1.0.0.jar</systemPath> 
     </dependency> 

Я построю его только с мужским пакетом.

+0

Вы можете ссылаться на это: [Как добавить локальные файлы jar в проект maven?] (Http://stackoverflow.com/a/4955695/2201637) –

ответ

4

Если внешние банки не присутствуют в центральной Maven репо, вы всегда можете добавить их к вашему местному Maven репо с ниже команды

mvn install:install-file -DlocalRepositoryPath=[path of local maven repo] -DcreateChecksum=true -Dpackaging=jar -Dfile=[jar file path] -DgroupId=[xxx] -DartifactId=[yyy] -Dversion=[zzz] 

Вы можете добавить соответствующие зависимости для этих внешних банок в вашем ПОМ .xml.

Надеется, что это помогает

0

Добавить банку в локальный репозитории Maven первым. mvn install:install-file -Dfile="path of jar" -DgroupId="com.external.jar" -DartifactId="externalJar" -Dversion="version of your jar" -Dpackaging=jar В pom.xml вашего проекта добавить зависимость - <dependency> <groupId>com.external.jar</groupid> <artifactId>externalJar</artifactId> <version>version of your jar</version> </dependency> Reference

0

Добавьте maven-assembly-plugin с jar-with-dependenciesdescriptorRef, как указано ниже в вашем разделе pom.xml <buid><plugins>...</plugins></build>. Он создает uber jar со всеми необходимыми зависимостями. Смотрите раздел конфигурации here

<build> 
    <plugins> 
     <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

Вы также можете использовать maven-shade-plugin, как описано here.

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