2016-12-08 3 views
4

私はSpringブートアプリケーションであるフレームワークと、htmlレイアウトとweb UIを含むframework-webの2つのプロジェクトを持っています。gulpタスクとspring-bootの実行方法:Mavenと一緒に実行しますか?

この目標を持つmavenを実行すると、clean installがローカルのリポジトリにフレームワークをインストールします。それから、私は目標clean spring-boot:runとこのプロファイルprod, devをframework-web上で実行して、Spring起動アプリケーションを起動し、framework-webでgulpタスクを実行したいとします。 しかし、それは巨根タスクだけを実行し、春のブートアプリケーションを開始しません。

これは、フレームワーク、ウェブののpom.xmlです:

<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.rgh</groupId> 
    <artifactId>framework-web</artifactId> 
    <version>0.0.1-releases</version> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.2.RELEASE</version> 
    </parent> 

    <properties> 
     <start-class>com.rgh.framework.Application</start-class> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.rgh</groupId> 
      <artifactId>framework</artifactId> 
      <version>0.0.1-releases</version> 
     </dependency> 
    </dependencies> 

    <profiles> 
     <profile> 
      <id>prod</id> 
      <build> 
       <finalName>framework-web</finalName> 
       <plugins> 
        <plugin> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-maven-plugin</artifactId> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-compiler-plugin</artifactId> 
         <configuration> 
          <source>1.8</source> 
          <target>1.8</target> 
          <fork>true</fork> 
          <encoding>UTF-8</encoding> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
     <profile> 
      <id>dev</id> 
      <build> 
       <finalName>framework-web</finalName> 
       <plugins> 
        <plugin> 
         <groupId>com.github.eirslett</groupId> 
         <artifactId>frontend-maven-plugin</artifactId> 
         <version>1.0</version> 
         <executions> 
          <execution> 
           <id>install node and npm</id> 
           <goals> 
            <goal>install-node-and-npm</goal> 
           </goals> 
           <configuration> 
            <nodeVersion>v4.4.7</nodeVersion> 
            <npmVersion>3.10.5</npmVersion> 
           </configuration> 
          </execution> 
          <execution> 
           <id>npm install</id> 
           <goals> 
            <goal>npm</goal> 
           </goals> 
           <configuration> 
            <arguments>install</arguments> 
           </configuration> 
          </execution> 
          <execution> 
           <id>bower install</id> 
           <goals> 
            <goal>bower</goal> 
           </goals> 
           <configuration> 
            <arguments>install --no-color</arguments> 
           </configuration> 
          </execution> 
          <execution> 
           <id>gulp build</id> 
           <goals> 
            <goal>gulp</goal> 
           </goals> 
           <configuration> 
            <arguments>serve</arguments> 
           </configuration> 
          </execution> 
         </executions> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 
</project> 

と日食でこの実行された構成:あなたは正しくフロントエンド-のmaven-プラグインを使用していない

enter image description here

答えて

4

。このプラグインは、Mavenビルド中にあなたのコード(transpile/compile/minify/...)をビルドするためのものです。しかし、これはあなたのMavenビルドが永遠に実行されることを意味するため、プロセスを永続的に実行する "serve"や "watch"のようなタスクを意図したものではありません。

また、実際には「配信」タスクは必要ありません。別のWebコンテナでフロントエンドコードを実行する場合は、「サーブ」タスクが便利です。しかし、すでに独自のWebコンテナを持っているSpringブートプロジェクトでGulpを使用しているので、自分で作成するべきではありません。

ソリューション:あなたがサーブ/時計/を持つようにしたい場合は

  1. /...ない時計/サーブのような連続したタスクのために、唯一の建物のためのフロントエンド-のmaven-プラグインを使用してください。 ..タスクを開発するには、Gulpタスクを手動で実行する必要があります。 Mavenをビルドする必要はありません。 Eclipseを使用しているので、this plugin(自分で使ったことがありません)を見てみてください。
  2. 春のブートは静的なWebコンテンツを提供することができるので、Springのブート/ JavaScriptプロジェクト内でGulpを使用している場合、Gulpのためのサーブタスクは本当に必要ありません。
  3. 静的コンテンツを別のWebコンテナ(Springブートプロジェクトではない)で実行する場合は、両方のプロジェクトを分離する必要があります。この場合、フロントエンドプロジェクトにMavenを使用する必要はありません。
関連する問題