如何运行gulp任务和spring-boot:与maven一起运行?

时间:2016-12-08 14:23:49

标签: java spring maven spring-boot gulp

我有两个项目, framework 是Spring启动应用程序,另一个是 framework-web ,它包含html布局和web ui。

我使用这个目标运行maven,clean install将框架安装到本地存储库中。然后我想在目标clean spring-boot:run上运行maven,并在framework-web上运行此配置文件prod, dev以启动Spring启动应用程序并在framework-web上运行gulp任务。 但它只运行gulp任务,并且不会启动spring boot应用程序。

这是framework-web的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>

这是eclipse中的运行配置:

enter image description here

1 个答案:

答案 0 :(得分:4)

您没有正确使用frontend-maven-plugin。此插件旨在在Maven构建期间构建您的代码(transpile / compile / minify / ...)。但是,它并不适用于像&#34; serve&#34;或者&#34;观看&#34;这将使该过程永远运行,因为这也意味着您的Maven构建将永远运行。

另外,你真的不需要&#34;服务&#34;任务。 A&#34;服务&#34;当您想要在单独的Web容器中运行前端代码时,任务非常有用。但是,既然你已经在Spring引导项目中使用了Gulp,而Spring引导项目已经拥有自己的Web容器,那么你就不应该创建自己的。

解决方案:

  1. 仅将frontend-maven-plugin用于构建,而不是用于服务/观看/ ...等连续任务。
  2. 如果要进行开发的serve / watch / ...任务,则应手动运行Gulp任务。它不需要Maven构建。由于您正在使用Eclipse,因此您可能需要查看this plugin(我自己没有使用过它)。
  3. Spring boot能够提供静态webcontent,所以如果您在Spring启动/ JavaScript项目中使用Gulp,那么您并不需要Gulp的服务任务。
  4. 如果要在单独的Web容器中运行静态内容(而不是在Spring启动项目中),则应将两个项目分开,在这种情况下,您不必将Maven用于前端项目。 / LI>