Java Jenkins-构建Vaadin Web应用程序需要很长时间

Java Jenkins-构建Vaadin Web应用程序需要很长时间,java,maven,jenkins,continuous-integration,vaadin,Java,Maven,Jenkins,Continuous Integration,Vaadin,我的目标是建立一个持续的集成(intellijidea->github->jenkins->tomcat),但“构建vaadinweb应用程序”的过程不会结束(见下文)。这个过程是从我的maven构建隐式调用的,只有在我关闭服务器时才会结束(顺便说一句:服务器的ram限制为500mb) 马文在詹金斯的目标是“干净包装”。war文件将通过另一个jenkins插件部署,但jenkins甚至还没有做到这一点 我的pom的构建部分如下所示(它来自一个原型,我还没有真正理解这一部分): org.apa

我的目标是建立一个持续的集成(intellijidea->github->jenkins->tomcat),但“构建vaadinweb应用程序”的过程不会结束(见下文)。这个过程是从我的maven构建隐式调用的,只有在我关闭服务器时才会结束(顺便说一句:服务器的ram限制为500mb)

马文在詹金斯的目标是“干净包装”。war文件将通过另一个jenkins插件部署,但jenkins甚至还没有做到这一点

我的pom的构建部分如下所示(它来自一个原型,我还没有真正理解这一部分):


org.apache.maven.plugins

正如Thorbjørn指出的,问题是由于服务器的容量

第一个服务器ram限制为512 mb,没有交换空间(主机最初不提供交换)。增加交换空间会导致相同的结果。因此,我选择了另一台具有1GB ram且无交换的服务器。在这种情况下,我遇到了一个“状态137的maven失败”,它告诉我(通过谷歌)使用swap


这就做到了:至少1 gb内存和一些交换(在我的例子中是4 gb)。vaadin widgetsets的汇编似乎相当繁重。

它很可能会变成死亡。您的JVM选项没有针对您的虚拟机进行调整。6年后,情况仍然如此!
<build>
        <plugins>
            <!--vaadin-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <!-- As we are doing "inplace" GWT compilation, ensure the widgetset -->
            <!-- directory is cleaned properly -->
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>src/main/webapp/VAADIN/widgetsets</directory>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-maven-plugin</artifactId>
                <version>${vaadin.plugin.version}</version>
                <configuration>
                    <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>
                    <!-- <runTarget>mobilemail</runTarget> -->
                    <!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This
                        way compatible with Vaadin eclipse plugin. -->
                    <webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets
                    </webappDirectory>
                    <hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets
                    </hostedWebapp>
                    <noServer>true</noServer>
                    <!-- Remove draftCompile when project is ready -->
                    <draftCompile>false</draftCompile>
                    <compileReport>true</compileReport>
                    <style>OBF</style>
                    <strict>true</strict>
                    <runTarget>http://localhost:8080/</runTarget>
                </configuration>
                <executions>
                    <execution>
                        <configuration>
                            <!-- if you don't specify any modules, the plugin will find them -->
                            <!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module>
                                </modules> -->
                        </configuration>
                        <goals>
                            <goal>resources</goal>
                            <goal>update-widgetset</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--<plugin>-->
                <!--<groupId>org.mortbay.jetty</groupId>-->
                <!--<artifactId>jetty-maven-plugin</artifactId>-->
            <!--</plugin>-->
            <!--vaadin end-->
        </plugins>
        <pluginManagement>
            <plugins>
                <!--vaadin-->
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>com.vaadin</groupId>
                                        <artifactId>
                                            vaadin-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [7.0.0.beta3,)
                                        </versionRange>
                                        <goals>
                                            <goal>resources</goal>
                                            <goal>update-widgetset</goal>
                                            <goal>compile</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                <!--vaadin end-->
            </plugins>
        </pluginManagement>
    </build>
<module>
    <inherits name="com.vaadin.DefaultWidgetSet"/>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="WebApp_ID" version="2.5">
    <display-name>Vaadin Web Application</display-name>
    <context-param>
        <description>Vaadin production mode</description>
        <param-name>productionMode</param-name>
        <param-value>false</param-value>
    </context-param>
    <servlet>
        <servlet-name>Vaadin Application Servlet</servlet-name>
        <servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
        <init-param>
            <description>Vaadin UI to display</description>
            <param-name>UI</param-name>
            <param-value>de.bahr.dhbw.logframe.UI.NavigatorUI</param-value>
        </init-param>
        <init-param>
            <description>Application widgetset</description>
            <param-name>widgetset</param-name>
            <param-value>de.bahr.dhbw.logframe.AppWidgetSet</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>Vaadin Application Servlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>