Limit berth scanning in maven plugin

I am having problems getting webapp to quickly start using the maven plugin for dock in eclipse. I use the pier: launch the target.

After enabling registration, the problem is that the pier scans all the banks in my webapp to configure the web application. Just including a jersey-media-moxy makes the jetty add 48 seconds to the launch time.

How to limit this scan to the berth-maven plugin? I found Jetty's launch delay due to scanning , but before I do some external berth configuration and include maven in this configuration, I want to make sure that there is no simpler option.

http://eclipse.org/jetty/documentation/current/quickstart-webapp.html looks promising, but I'm not sure how to proceed (as this does not mention the maven plugin).

My pom.xml file is below:

 <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.my-app</groupId> <artifactId>my-app</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>my-app</name> <build> <finalName>my-app</finalName> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.9.v20150224</version> <configuration> <war>${project.basedir}/target/my-app.war</war> <stopPort>8088</stopPort> <stopKey>foo</stopKey> <stopWait>10</stopWait> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> <dependencyManagement> <dependencies> <dependency> <groupId>org.glassfish.jersey</groupId> <artifactId>jersey-bom</artifactId> <version>${jersey.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <!-- artifactId>jersey-container-servlet-core</artifactId --> <!-- use the following artifactId if you don't need servlet 2.x compatibility --> <artifactId>jersey-container-servlet</artifactId> </dependency> <!-- uncomment this to get JSON support --> <!-- --> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-moxy</artifactId> </dependency> <!-- --> </dependencies> <properties> <jersey.version>2.16</jersey.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project> 
+5
source share
1 answer

This is what I use for my projects to speed up the launch of Jetty only from the maven pom.xml file (no external configuration is required):

  <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webApp> <!-- no need to scan anything as we're using servlet 2.5 and moreover, we're not using ServletContainerInitializer(s) --> <!-- for more relevant information regarding scanning of classes refer to https://java.net/jira/browse/SERVLET_SPEC-36 --> <webInfIncludeJarPattern>^$</webInfIncludeJarPattern> <containerIncludeJarPattern>^$</containerIncludeJarPattern> <!--<webInfIncludeJarPattern>.*/spring-[^/]*\.jar$|.*/.*jsp-api-[^/]\.jar$|./.*jsp-[^/]\.jar$|./.*taglibs[^/]*\.jar$</webInfIncludeJarPattern>--> </webApp> </configuration> </plugin> 

Use any regular expression of your choice (if you are using servlet initializers). Note that ^$ excludes everything.

+16
source

Source: https://habr.com/ru/post/1214882/


All Articles