Vaadin 14: 字段 c 的描述符无效 – 为什么会出现这个错误?

huangapple 未分类评论43阅读模式
英文:

Vaadin 14: invalid descriptor for field c - Why do I get that error?

问题

以下是您提供的内容的翻译:

为什么在 Vaadin 14 中重新启动我的 Web 应用程序时会出现此错误?注意重新启动,而不是从头开始启动。
我的 Web 应用程序正常运行,在代码内没有出现错误。所以我无法告诉您问题出在哪里,只能说我在启动时遇到了错误。

我正在使用 Vaadin 14 与 Spring Boot,从项目开始就一直在使用这个配置。

我猜这可能与以下内容有关:

2020-04-03 19:45:52.551  WARN 12331 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Cannot deserialize session attribute [com.vaadin.flow.server.VaadinSession.springServlet] for session [5FA61268BB6EFA5428B0EE8C9E39E87A]
2020-04-03 19:45:52.579 ERROR 12331 --- [  restartedMain] o.a.catalina.session.StandardManager     : Exception loading sessions from persistent storage

但我不知道这是什么意思。

java.io.InvalidClassException: java.util.Collections$UnmodifiableCollection; invalid descriptor for field c
	at java.base/java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:797) ~[na:na]
	...

这是我的 pom.xml 文件内容:

<!-- 此处省略了 pom.xml 的内容 -->

希望对您有所帮助。

英文:

Why do I get this error at Vaadin 14 when I re-start my web application? Notice re-start. Not start from beginning.
My web application works fine and I get no errors for it inside the code. So I cannot tell you where the problem is, only that I get an error at start up.

I'm using Vaadin 14 with Spring boot and this have been where since the beginning of the project.

I assuming that has something to do with this

2020-04-03 19:45:52.551  WARN 12331 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Cannot deserialize session attribute [com.vaadin.flow.server.VaadinSession.springServlet] for session [5FA61268BB6EFA5428B0EE8C9E39E87A]
2020-04-03 19:45:52.579 ERROR 12331 --- [  restartedMain] o.a.catalina.session.StandardManager     : Exception loading sessions from persistent storage

But I don't know what it means.

java.io.InvalidClassException: java.util.Collections$UnmodifiableCollection; invalid descriptor for field c
	at java.base/java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:797) ~[na:na]
	at java.base/java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:936) ~[na:na]
	at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1930) ~[na:na]
	at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1827) ~[na:na]
	at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1958) ~[na:na]
	at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1827) ~[na:na]
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2115) ~[na:na]
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646) ~[na:na]
	at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2410) ~[na:na]
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2304) ~[na:na]
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2142) ~[na:na]
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646) ~[na:na]
	at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2410) ~[na:na]
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2304) ~[na:na]
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2142) ~[na:na]
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646) ~[na:na]
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:464) ~[na:na]
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:422) ~[na:na]
	at org.apache.catalina.session.StandardSession.doReadObject(StandardSession.java:1576) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1048) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:218) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.session.StandardManager.load(StandardManager.java:162) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:354) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5163) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) ~[na:na]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) ~[na:na]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.apache.catalina.startup.Tomcat.start(Tomcat.java:459) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:107) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.&lt;init&gt;(TomcatWebServer.java:88) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:438) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:191) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:153) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) ~[spring-context-5.2.0.RELEASE.jar:5.2.0.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.0.RELEASE.jar:2.2.0.RELEASE]
	at se.spektrakon.hemsida.HemsidaApplication.main(HemsidaApplication.java:12) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.2.0.RELEASE.jar:2.2.0.RELEASE]
Caused by: java.lang.IllegalArgumentException: illegal signature
	at java.base/java.io.ObjectStreamField.&lt;init&gt;(ObjectStreamField.java:124) ~[na:na]
	at java.base/java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:795) ~[na:na]
	... 65 common frames omitted

Here is my pom.xml file

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;groupId&gt;se.spektrakon.hemsida&lt;/groupId&gt;
    &lt;artifactId&gt;spektrakonhemsida&lt;/artifactId&gt;
    &lt;name&gt;SpektrakonHemsida&lt;/name&gt;
    &lt;version&gt;2.0-SNAPSHOT&lt;/version&gt;
    &lt;packaging&gt;jar&lt;/packaging&gt;

    &lt;properties&gt;
        &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt;
        &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;
        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
        &lt;project.reporting.outputEncoding&gt;UTF-8&lt;/project.reporting.outputEncoding&gt;

        &lt;vaadin.version&gt;14.1.19&lt;/vaadin.version&gt;

        &lt;drivers.dir&gt;${project.basedir}/drivers&lt;/drivers.dir&gt;
        &lt;drivers.downloader.phase&gt;pre-integration-test&lt;/drivers.downloader.phase&gt;
    &lt;/properties&gt;

    &lt;parent&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
        &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
        &lt;version&gt;2.2.0.RELEASE&lt;/version&gt;
    &lt;/parent&gt;

    &lt;repositories&gt;
        &lt;!-- The order of definitions matters. Explicitly defining central here to make sure it has the highest priority. --&gt;

        &lt;!-- Main Maven repository --&gt;
        &lt;repository&gt;
            &lt;id&gt;central&lt;/id&gt;
            &lt;url&gt;https://repo.maven.apache.org/maven2&lt;/url&gt;
            &lt;snapshots&gt;
                &lt;enabled&gt;false&lt;/enabled&gt;
            &lt;/snapshots&gt;
        &lt;/repository&gt;
        &lt;!-- Repository used by many Vaadin add-ons --&gt;
        &lt;repository&gt;
            &lt;id&gt;Vaadin Directory&lt;/id&gt;
            &lt;url&gt;https://maven.vaadin.com/vaadin-addons&lt;/url&gt;
            &lt;snapshots&gt;
                &lt;enabled&gt;false&lt;/enabled&gt;
            &lt;/snapshots&gt;
        &lt;/repository&gt;
        &lt;!-- For the Crud and message box--&gt;
        &lt;repository&gt;
   			&lt;id&gt;vaadin-addons&lt;/id&gt;
	   		&lt;url&gt;https://maven.vaadin.com/vaadin-addons&lt;/url&gt;
		&lt;/repository&gt;
    &lt;/repositories&gt;

    &lt;pluginRepositories&gt;
        &lt;!-- Main Maven repository --&gt;
        &lt;pluginRepository&gt;
            &lt;id&gt;central&lt;/id&gt;
            &lt;url&gt;https://repo.maven.apache.org/maven2&lt;/url&gt;
            &lt;snapshots&gt;
                &lt;enabled&gt;false&lt;/enabled&gt;
            &lt;/snapshots&gt;
        &lt;/pluginRepository&gt;
    &lt;/pluginRepositories&gt;

    &lt;dependencyManagement&gt;
        &lt;dependencies&gt;
            &lt;dependency&gt;
                &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
                &lt;artifactId&gt;vaadin-bom&lt;/artifactId&gt;
                &lt;version&gt;${vaadin.version}&lt;/version&gt;
                &lt;type&gt;pom&lt;/type&gt;
                &lt;scope&gt;import&lt;/scope&gt;
            &lt;/dependency&gt;
        &lt;/dependencies&gt;
    &lt;/dependencyManagement&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
            &lt;!-- Replace artifactId with vaadin-core to use only free components --&gt;
            &lt;artifactId&gt;vaadin&lt;/artifactId&gt;
            &lt;exclusions&gt;
                &lt;!-- Webjars are only needed when running in Vaadin 13 compatibility mode --&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;com.vaadin.webjar&lt;/groupId&gt;
                    &lt;artifactId&gt;*&lt;/artifactId&gt;
                &lt;/exclusion&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.webjars.bowergithub.insites&lt;/groupId&gt;
                    &lt;artifactId&gt;*&lt;/artifactId&gt;
                &lt;/exclusion&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.webjars.bowergithub.polymer&lt;/groupId&gt;
                    &lt;artifactId&gt;*&lt;/artifactId&gt;
                &lt;/exclusion&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.webjars.bowergithub.polymerelements&lt;/groupId&gt;
                    &lt;artifactId&gt;*&lt;/artifactId&gt;
                &lt;/exclusion&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.webjars.bowergithub.vaadin&lt;/groupId&gt;
                    &lt;artifactId&gt;*&lt;/artifactId&gt;
                &lt;/exclusion&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.webjars.bowergithub.webcomponents&lt;/groupId&gt;
                    &lt;artifactId&gt;*&lt;/artifactId&gt;
                &lt;/exclusion&gt;
            &lt;/exclusions&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
            &lt;artifactId&gt;vaadin-spring-boot-starter&lt;/artifactId&gt;
            &lt;exclusions&gt;
                &lt;!-- Excluding so that webjars are not included. --&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
                    &lt;artifactId&gt;vaadin-core&lt;/artifactId&gt;
                &lt;/exclusion&gt;
            &lt;/exclusions&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-devtools&lt;/artifactId&gt;
            &lt;optional&gt;true&lt;/optional&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
            &lt;artifactId&gt;vaadin-testbench&lt;/artifactId&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
		    &lt;groupId&gt;org.projectlombok&lt;/groupId&gt;
		    &lt;artifactId&gt;lombok&lt;/artifactId&gt;
		    &lt;scope&gt;provided&lt;/scope&gt;
		&lt;/dependency&gt;


		&lt;dependency&gt;
		  &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
		  &lt;artifactId&gt;spring-boot-starter-security&lt;/artifactId&gt;
		&lt;/dependency&gt;
		
		&lt;dependency&gt;
		  &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
		  &lt;artifactId&gt;spring-security-oauth2-client&lt;/artifactId&gt;
		&lt;/dependency&gt;
		
		&lt;dependency&gt;
		   &lt;groupId&gt;org.vaadin.crudui&lt;/groupId&gt;
		   &lt;artifactId&gt;crudui&lt;/artifactId&gt;
		   &lt;version&gt;4.1.0&lt;/version&gt;
		&lt;/dependency&gt;
		
		&lt;dependency&gt;
		    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
		    &lt;artifactId&gt;spring-boot-starter-data-jpa&lt;/artifactId&gt;
		&lt;/dependency&gt;
		
		&lt;dependency&gt;
		    &lt;groupId&gt;mysql&lt;/groupId&gt;
		    &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
		&lt;/dependency&gt;
		
		&lt;dependency&gt;
		    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
		    &lt;artifactId&gt;spring-boot-starter-mail&lt;/artifactId&gt;
		&lt;/dependency&gt;
		
		&lt;dependency&gt;
		    &lt;groupId&gt;commons-validator&lt;/groupId&gt;
		    &lt;artifactId&gt;commons-validator&lt;/artifactId&gt;
		    &lt;version&gt;1.6&lt;/version&gt;
		&lt;/dependency&gt;
		
		&lt;dependency&gt;
		   &lt;groupId&gt;org.claspina&lt;/groupId&gt;
		   &lt;artifactId&gt;confirm-dialog&lt;/artifactId&gt;
		   &lt;version&gt;2.0.0&lt;/version&gt;
		&lt;/dependency&gt;
		
    &lt;/dependencies&gt;

    &lt;build&gt;
        &lt;defaultGoal&gt;spring-boot:run&lt;/defaultGoal&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
                &lt;!-- Clean build and startup time for Vaadin apps sometimes may exceed
                     the default Spring Boot&#39;s 30sec timeout.  --&gt;
                &lt;configuration&gt;
                    &lt;wait&gt;500&lt;/wait&gt;
                    &lt;maxAttempts&gt;240&lt;/maxAttempts&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;

            &lt;!--
                Take care of synchronizing java dependencies and imports in
                package.json and main.js files.
                It also creates webpack.config.js if not exists yet.
            --&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
                &lt;artifactId&gt;vaadin-maven-plugin&lt;/artifactId&gt;
                &lt;version&gt;${vaadin.version}&lt;/version&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;prepare-frontend&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
    &lt;/build&gt;

    &lt;profiles&gt;
        &lt;profile&gt;
            &lt;!-- Production mode is activated using -Pproduction --&gt;
            &lt;id&gt;production&lt;/id&gt;
            &lt;properties&gt;
                &lt;vaadin.productionMode&gt;true&lt;/vaadin.productionMode&gt;
            &lt;/properties&gt;

            &lt;dependencies&gt;
                &lt;dependency&gt;
                    &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
                    &lt;artifactId&gt;flow-server-production-mode&lt;/artifactId&gt;
                &lt;/dependency&gt;
            &lt;/dependencies&gt;

            &lt;build&gt;
                &lt;plugins&gt;
                    &lt;plugin&gt;
                        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                        &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
                        &lt;configuration&gt;
                            &lt;jvmArguments&gt;-Dvaadin.productionMode&lt;/jvmArguments&gt;
                        &lt;/configuration&gt;
                    &lt;/plugin&gt;
                    &lt;plugin&gt;
                        &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
                        &lt;artifactId&gt;vaadin-maven-plugin&lt;/artifactId&gt;
                        &lt;version&gt;${vaadin.version}&lt;/version&gt;
                        &lt;executions&gt;
                            &lt;execution&gt;
                                &lt;goals&gt;
                                    &lt;goal&gt;build-frontend&lt;/goal&gt;
                                &lt;/goals&gt;
                                &lt;phase&gt;compile&lt;/phase&gt;
                            &lt;/execution&gt;
                        &lt;/executions&gt;
                    &lt;/plugin&gt;
                &lt;/plugins&gt;
            &lt;/build&gt;
        &lt;/profile&gt;

        &lt;profile&gt;
            &lt;id&gt;integration-tests&lt;/id&gt;
            &lt;build&gt;
                &lt;plugins&gt;
                    &lt;plugin&gt;
                        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                        &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
                        &lt;executions&gt;
                            &lt;execution&gt;
                                &lt;id&gt;start-spring-boot&lt;/id&gt;
                                &lt;phase&gt;pre-integration-test&lt;/phase&gt;
                                &lt;goals&gt;
                                    &lt;goal&gt;start&lt;/goal&gt;
                                &lt;/goals&gt;
                            &lt;/execution&gt;
                            &lt;execution&gt;
                                &lt;id&gt;stop-spring-boot&lt;/id&gt;
                                &lt;phase&gt;post-integration-test&lt;/phase&gt;
                                &lt;goals&gt;
                                    &lt;goal&gt;stop&lt;/goal&gt;
                                &lt;/goals&gt;
                            &lt;/execution&gt;
                        &lt;/executions&gt;
                    &lt;/plugin&gt;

                    &lt;!-- Runs the integration tests (*IT) after the server is started --&gt;
                    &lt;plugin&gt;
                        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                        &lt;artifactId&gt;maven-failsafe-plugin&lt;/artifactId&gt;
                        &lt;executions&gt;
                            &lt;execution&gt;
                                &lt;goals&gt;
                                    &lt;goal&gt;integration-test&lt;/goal&gt;
                                    &lt;goal&gt;verify&lt;/goal&gt;
                                &lt;/goals&gt;
                            &lt;/execution&gt;
                        &lt;/executions&gt;
                        &lt;configuration&gt;
                            &lt;trimStackTrace&gt;false&lt;/trimStackTrace&gt;
                            &lt;enableAssertions&gt;true&lt;/enableAssertions&gt;
                            &lt;systemPropertyVariables&gt;
                                &lt;!-- Pass location of downloaded webdrivers to the tests --&gt;
                                &lt;webdriver.chrome.driver&gt;${webdriver.chrome.driver}&lt;/webdriver.chrome.driver&gt;
                            &lt;/systemPropertyVariables&gt;
                        &lt;/configuration&gt;
                    &lt;/plugin&gt;

                    &lt;plugin&gt;
                        &lt;groupId&gt;com.lazerycode.selenium&lt;/groupId&gt;
                        &lt;artifactId&gt;driver-binary-downloader-maven-plugin&lt;/artifactId&gt;
                        &lt;version&gt;1.0.17&lt;/version&gt;
                        &lt;configuration&gt;
                            &lt;onlyGetDriversForHostOperatingSystem&gt;true
                            &lt;/onlyGetDriversForHostOperatingSystem&gt;
                            &lt;rootStandaloneServerDirectory&gt;
                                ${project.basedir}/drivers/driver
                            &lt;/rootStandaloneServerDirectory&gt;
                            &lt;downloadedZipFileDirectory&gt;
                                ${project.basedir}/drivers/driver_zips
                            &lt;/downloadedZipFileDirectory&gt;
                            &lt;customRepositoryMap&gt;
                                ${project.basedir}/drivers.xml
                            &lt;/customRepositoryMap&gt;
                        &lt;/configuration&gt;
                        &lt;executions&gt;
                            &lt;execution&gt;
                                &lt;!-- use phase &quot;none&quot; to skip download step --&gt;
                                &lt;phase&gt;${drivers.downloader.phase}&lt;/phase&gt;
                                &lt;goals&gt;
                                    &lt;goal&gt;selenium&lt;/goal&gt;
                                &lt;/goals&gt;
                            &lt;/execution&gt;
                        &lt;/executions&gt;
                    &lt;/plugin&gt;
                &lt;/plugins&gt;
            &lt;/build&gt;
        &lt;/profile&gt;

    &lt;/profiles&gt;
&lt;/project&gt;

huangapple
  • 本文由 发表于 2020年4月4日 01:50:43
  • 转载请务必保留本文链接:https://java.coder-hub.com/61017671.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定