2016-10-27 3 views
0

Мы работаем над проектом весеннего облака с использованием весеннего ботинка. Наша цель - создать исполняемую войну, которую можно запустить с помощью java -jar.Как создать единую исполняемую войну весенним ботинком

Я следовал за несколькими сообщениями на SO и смог сгенерировать исполняемую войну 1) добавив тег классификатора загрузки. 2) Добавление Упаковать цели в фазе выполнения весенне-загрузка Maven-плагин

Теперь с этим подходом, я получаю две военных файлы: одна войны, которая не является исполняемым, а просто развертываемыми и другой войной с загрузочным классификатором что соответствует моим требованиям

Есть ли способ генерировать только исполняемую команду?

Я крепление pom.xml для удобства

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0

<artifactId>discovery-service</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<description> 
    Discovery microservice to provide a service registry using Spring Cloud 
    and Netflix Eureka for cloud native microservices. 
</description> 

<properties> 
    <java.version>1.8</java.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <version>1.2.3.RELEASE</version> 
      **<configuration> 
       <classifier>boot</classifier> 
      </configuration> 
      <executions> 
       <execution> 
        <goals> 
         <goal>repackage</goal> 
        </goals> 
       </execution> 
      </executions>** 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
       <outputDirectory>target</outputDirectory> 
       <warName>ROOT</warName> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-eureka-server</artifactId> 
    </dependency> 
</dependencies> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-dependencies</artifactId> 
      <version>Brixton.SR1</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-parent</artifactId> 
      <version>Brixton.SR1</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

Ссылки: One Spring Boot project, deploy to both JAR or WAR

Failed to load Main-Class manifest attribute while running java -jar

+0

Вам не нужно добавить любой классификатор. тот, что Spring Загрузочный производит работы в Java -jar _AND_ развернутого в контейнере сервлетов. вы пробовали? –

+0

@Stephane Спасибо за ваш комментарий, война, которая весной загружает продукцию es могут быть развернуты в контейнере сервлетов, и мы не хотели этого делать. Поэтому нам нужна исполняемая война, которую можно запустить с помощью java -jar-команды. Я сделал свою часть исследования, прежде чем публиковать этот вопрос здесь – Narasimha

+0

Чтобы быть более понятным, мы просто хотим использовать встроенный сервер tomcat без развертывания на внешнем контейнере сервлетов – Narasimha

ответ

0

Благодаря Stephane, предлагающему удалить классификатор и предлагая использовать starter.io.

Моя первоначальная проблема была я получаю две военные файлы в цель: 1) Root.war и другие 2) открытие-сервис-boot.war

Я предполагаю, что дьявол был в мавена -war-plugin config. После того, как я удалил теги xml для warName и outputDirectory, я получаю исполняемую войну.

Я отправляю окончательный pom.xml для benifit других стоящих перед подобной ситуацией:

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0

<artifactId>discovery-service</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<description> 
    Discovery microservice to provide a service registry using Spring Cloud 
    and Netflix Eureka for cloud native microservices. 
</description> 

<properties> 
    <java.version>1.8</java.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <version>1.2.3.RELEASE</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>repackage</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-eureka-server</artifactId> 
    </dependency> 
</dependencies> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-dependencies</artifactId> 
      <version>Brixton.SR1</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-parent</artifactId> 
      <version>Brixton.SR1</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

+0

Некоторая информация по переупаковке цели в плагине весеннего ботинка maven, а также последствие использования классификатора. http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/repackage-classifier.html – Narasimha

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