2016-04-05 4 views
1

Я попытался найти «Build jar without IDE» без каких-либо успехов, если у кого есть какие-либо указатели, я был бы рад RTFM.IntelliJ CE + Maven пакет без IDE

Я не касался Java примерно через 5 лет, и все кажется немного очень отличается.

У меня есть приложение Java IntelliJ, стандартное приложение Java, с некоторыми зависимостями maven. Я могу пойти построить> построить артефакты, и это создало бы баночку для меня, в котором я могу запустить приложение на java -jar out.jar

версии IDE: IntelliJ Community Edition 2016,1

Содержание файла pom.xml :

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>app</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>org.yaml</groupId> 
      <artifactId>snakeyaml</artifactId> 
      <version>1.17</version> 
     </dependency> 
    </dependencies> 
</project> 

Однако, как я могу построить это приложение с командной строкой, как если бы я нажимал «построить артефакт» из IDE?

ответ

1

Сборка артефактов configured through the project structure settings хранится в файлах проекта IntelliJ и не предоставляется автоматически через командную строку. Чтобы построить артефакт через Maven, вы должны вручную перевести конфигурацию артефакта IntelliJ в Maven Shade Plugin configuration that creates an executable jar. Если предположить, что существующая конфигурация артефакт просто содержит все, что в вашем проекте, который будет выглядеть следующим образом:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.4.3</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 
         <transformers> 
          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
           <mainClass>com.example.MyMainClass</mainClass> 
          </transformer> 
         </transformers> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

добавить, что фрагмент кода перед вашим </project> тег в pom.xml, а затем запустить mvn package в командной строке, и Maven будет генерировать app-1.0-SNAPSHOT.jar в вашем каталоге target, который может быть запущен с java -jar. Если вы хотите создать тот же артефакт из IntelliJ, вы можете сделать это, обратившись к фазе жизненного цикла package с Maven Projects Tool Window.