vaadin 23 сообщает о режиме отладки при сборке для производства

Я создал свое приложение vaadin 23 в производственном режиме с помощью:

      mvn clean package -Pproduction -DskipTests -U

Мой pom.xml содержит необходимый профиль:

      <!-- vaadin profiles -->
    <!-- https://vaadin.com/docs/latest/flow/production/production-build -->
    <profiles>
        <profile>
            <id>production</id>
            <properties>
                <vaadin.productionMode>true</vaadin.productionMode>
            </properties>

            <!-- configuration depending on environment -->
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.vaadin</groupId>
                        <artifactId>vaadin-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>build-frontend</goal>
                                </goals>
                                <phase>compile</phase>
                            </execution>
                        </executions>

                        <configuration>
                            <productionMode>true</productionMode>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
            <!-- .. more configuration .. -->
            <dependencies>
                <dependency>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin</artifactId>
                    <exclusions>
                        <exclusion>
                            <groupId>com.vaadin</groupId>
                            <artifactId>vaadin-dev-server</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
            </dependencies>

        </profile>
    </profiles>

Я создаю военный файл для tomcat 9, используя java 17.

Война содержит WEB-INF/classes/META-INF/VAADIN/config/flow-build-info.json

      {
  "productionMode": true,
  "useDeprecatedV14Bootstrapping": false,
  "eagerServerLoad": false,
  "chunks": {
    "fallback": {
      "jsModules": [
        "@vaadin/select/src/vaadin-select.js",
        "./selectConnector.js",
        "@polymer/paper-ripple/paper-ripple.js",
        "./custom-media-query.js",
        "./com/github/appreciated/card/clickable-card.js",
        "./com/github/appreciated/card/stateful-card.js",
        "./grid-layout/grid-layout.js",
        "./font-awesome-iron-iconset/far.js",
        "./font-awesome-iron-iconset/fab.js",
        "./element-media-query.js",
        "@vaadin/charts/src/vaadin-chart.js",
        "@vaadin/grid-pro/src/vaadin-grid-pro.js",
        "@vaadin/grid-pro/src/vaadin-grid-pro-edit-column.js",
        "./gridProConnector.js",
        "@vaadin/board/vaadin-board-row.js",
        "@vaadin/avatar-group/src/vaadin-avatar-group.js",
        "@vaadin/crud/src/vaadin-crud.js",
        "@vaadin/crud/src/vaadin-crud-edit-column.js",
        "@vaadin/message-input/src/vaadin-message-input.js",
        "@vaadin/login/src/vaadin-login-form.js",
        "./messageListConnector.js",
        "@vaadin/message-list/src/vaadin-message-list.js",
        "@vaadin/virtual-list/vaadin-virtual-list.js",
        "./virtualListConnector.js",
        "@polymer/iron-list/iron-list.js",
        "./ironListConnector.js",
        "./ironListStyles.js",
        "@vaadin/upload/src/vaadin-upload-file.js",
        "@vaadin/login/src/vaadin-login-overlay.js",
        "@vaadin/board/vaadin-board.js",
        "./vaadin-big-decimal-field.js",
        "@vaadin/app-layout/src/vaadin-drawer-toggle.js",
        "@vaadin/confirm-dialog/src/vaadin-confirm-dialog.js",
        "@vaadin/app-layout/src/vaadin-app-layout.js"
      ],
      "cssImports": [
        {
          "value": "./styles/grid-layout.css"
        }
      ]
    }
  },
  "enableDevServer": false
}

WEB-INF/classes/META-INF/VAADIN/config/stats.json содержит:

      {
 "assetsByChunkName": {
  "bundle": "VAADIN/build/vaadin-bundle-7f98e7fa04576858b6f8.cache.js"
 }
}

Единственная проблема, которую я вижу в этом, заключается в том, что он включает модули, которые я не использую, но я не верю, что это имеет какое-либо отношение к текущей проблеме.

Когда я развертываю войну, tomcat сообщает:

      (AtmosphereFramework.java:1087) - Atmosphere Framework 2.7.3.slf4jvaadin4 started.
(AtmosphereFramework.java:2626) - Installed AtmosphereInterceptor  Track Message Size Interceptor using | with priority BEFORE_DEFAULT 
(DefaultDeploymentConfiguration.java:155) - Following issues were discovered with deployment configuration:
WARNING: Vaadin is running in DEBUG MODE with debug features enabled, but with a prebuild frontend bundle (production ready).
When deploying application for production, disable debug features by enabling production mode!
See more from https://vaadin.com/docs/latest/flow/production/overview
[main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [14,764] ms
org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
[main] org.apache.catalina.startup.Catalina.start Server startup in [14985] milliseconds

в противном случае система работает должным образом.

Я следовал этому руководству по устранению неполадок, и все кажется правильным: https://vaadin.com/docs/latest/flow/production/troubleshooting

1 ответ

В конце концов я решил эту проблему благодаря хорошей идее от @Frettman.

Основной проблемой был мой сервлет vaadin, который мы настраиваем с помощью аннотаций.

      
@WebServlet(urlPatterns =
{ "/*" }, name = "OnePub", asyncSupported = true, loadOnStartup = 1, initParams =
{
        @WebInitParam(name = "org.atmosphere.cpr.AtmosphereInterceptor", value = "dev.onepub.servlets.AtmosphereFilter"),
        @WebInitParam(name = "closeIdleSessions", value = "true"),

        /// changed this when we release.
        @WebInitParam(name = "productionMode", value = "false")

})

Проблемной линией была

      @WebInitParam(name = "productionMode", value = "false")

изменение значения на «true» решило проблему.

      @WebInitParam(name = "productionMode", value = "true")

Я также сделал еще одно изменение, которое МОЖЕТ внести свой вклад в исправление.

Раздел моего производственного профиля файла pom содержал зависимость:

      <dependency>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin</artifactId>
                    <exclusions>
                        <exclusion>
                            <groupId>com.vaadin</groupId>
                            <artifactId>vaadin-dev-server</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>

Я не уверен, как это попало в pom, но я меняю раздел профиля на:

      <profiles>
        <profile>
            <!-- Production mode is activated using -Pproduction -->
            <id>production</id>
            <properties>
                <vaadin.productionMode>true</vaadin.productionMode>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>com.vaadin</groupId>
                    <artifactId>flow-server-production-mode</artifactId>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.vaadin</groupId>
                        <artifactId>vaadin-maven-plugin</artifactId>
                        <version>${vaadin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>build-frontend</goal>
                                </goals>
                                <phase>compile</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
Другие вопросы по тегам