Запуск банку, установка classpath - PullRequest
4 голосов
/ 24 января 2010

У меня есть проект, который я сделал с Maven. Я компилирую JAR с помощью "mvn package", и теперь я хочу его запустить, желательно без установки какого-то безумного пути к классам, поскольку это зависит от Spring и половины интернета или чего-то еще. Есть ли способ, которым я могу запустить это легко? Было бы замечательно что-то вроде «mvn run», или была бы великолепной возможность добавить все зависимости в jar, чтобы я мог сделать «java -jar».

Как вы справляетесь с этим, и что вы рекомендуете делать? Потому что экспорт CLASSPATH на основе ~ / .m2, вероятно, будет просто вреден; -)

Ответы [ 3 ]

11 голосов
/ 24 января 2010

Установка CLASSPATH и вызов java -jar myjar.jar не будут работать в любом случае. Поскольку команда java -jar игнорирует переменную окружения CLASSPATH, а также флаг -cp.

В этом случае вам нужно было добавить записи classpath к манифесту банки в ключе Class-Path, например:

 Class-Path: jar1-name jar2-name directory-name/jar3-name
9 голосов
/ 24 января 2010

Используйте Maven Assembly Plugin - он автоматически создаст ваш JAR со всеми включенными зависимостями, и вы можете установить параметр main class, чтобы сделать JAR исполняемым.

Документация может сбивать с толку, поэтому вот пример того, как будет выглядеть ваше POM:

<build>
   <plugins>
       <plugin>
           <artifactId>maven-assembly-plugin</artifactId>
           <version>2.1</version>
           <configuration>
               <descriptorRefs>
                   <descriptorRef>jar-with-dependencies</descriptorRef>
               </descriptorRefs>
               <archive>
                   <manifest>
                       <mainClass>package.of.my.MainClass</mainClass>
                       <packageName>package.of.my</packageName>
                   </manifest>
               </archive>
           </configuration>
        </plugin>
   </plugins>
</build>

И тогда вы можете запустить как:

mvn assembly:assembly
1 голос
/ 24 января 2010

Вам захочется заглянуть в Плагин Maven Assembly . И затем, как только вы создали XML-файл, требуемый плагином, и изменили ваш файл POM для работы с плагином, вы можете запустить его с помощью:

mvn assembly:assembly  

Это создаст JAR со всеми его зависимостями.

...