Вопрос:

Как сделать «толстую банку» из проекта Maven?

java maven intellij-idea

16579 просмотра

2 ответа

10481 Репутация автора

Используя IntelliJ, я просто создал новый проект Maven и добавил следующее в файл pom http://undertow.io/downloads.html и следующее в файл Main.java http://undertow.io/index.html

Теперь, если я запускаю код, все работает хорошо, но как мне сделать это как «толстую банку», которая будет содержать все зависимости в файле pom и которую я смогу запустить просто java -jar my.jar? Как вы можете сделать с приложением Spring Boot.

Автор: daniels Источник Размещён: 22.08.2016 09:43

Ответы (2)


6 плюса

3086 Репутация автора

1) Добавьте Spring-boot-maven-pluginфайл в файл pom.xml.

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.4.0.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

2) Поменяйте упаковку на банку

<packaging>jar</packaging>

3) mvn packageсоздаст исполняемый файл jar.

Автор: K139 Размещён: 22.08.2016 09:46

18 плюса

14315 Репутация автора

Решение

Maven Shade Plugin делает это хорошо.

<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>package.Main</mainClass>
              </transformer>
            </transformers>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
Автор: Stewart Размещён: 22.08.2016 10:02
Вопросы из категории :
32x32