2016-10-27 12 views
0

私たちは春の靴を使って春の雲のプロジェクトに取り組んでいます。私たちの目標は、java -jarを使って実行できる実行可能なwarを作成することです。春の起動時に単一の実行可能な戦争を作成する方法

私はSOの記事をいくつかフォローして、実行可能な戦争を生成することができました。 1戦争の実行が、 だけに展開し、ブート分類子を持つ別の戦争ではありません。私は2つのwarファイルを取得しています。このアプローチで

今春-ブートのmaven-pluginのために実行段階に再パッケージゴールを追加 2)それは私の要求に合っています

実行可能な戦争だけを生成する方法はありますか?

私は簡単に参照の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

あなたは、分類器のいずれかの種類を追加する必要はありません。春ブーツサーブレットコンテナに配備_and_ -jar Javaのような作品を作り出す1。あなたは試したことがありますか?あなたのための –

+0

@Stephane感謝をコメント、その春のブートプロダクションの戦争esはサーブレットコンテナにデプロイすることができ、私たちはそれを望んでいませんでした。したがって、java -jarコマンドを使用して実行できる実行可能なwarが必要です。私はこの質問をここに投稿する前に研究の一部を行った – Narasimha

+0

もっと明確にするために、外部サーブレットコンテナにデプロイせずに埋め込みTomcatサーバーを使用したいのですが – Narasimha

答えて

0

クラシファイアを削除し、starter.ioの使用を提案してくれたStephaneに感謝します。

私の元の問題は、私は、ターゲットで2つのWARファイルを取得していた: 1)Root.war及びその他の 2)発見サービス-boot.war

私は推測、悪魔が達人にありました-war-plugin設定warNameとoutputDirectoryのxmlタグを削除したら、実行可能な戦争を得ています。

私は似たような状況に直面して他の人をbenifitする最終の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> 
      <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

Spring Boot Mavenプラグインの情報の再パッケージ化の目標と、分類子を使用した結果。 http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/repackage-classifier.html – Narasimha

関連する問題