2015-03-07 3 views
5

Ich habe Probleme, eine Webapp zu starten, schnell mit der Maven Jetty Plugin in Eclipse zu starten. Ich benutze den Steg: Lauf Ziel.Limit Jetty Scannen in Maven-Plugin

Nach dem Einschalten der Protokollierung scheint das Problem, dass Anlegestelle alle Gläser in meiner Webapp für Web-App-Konfiguration scannt. Wenn Sie nur eine Abhängigkeit zu jersey-media-moxy hinzufügen, wird der Anlegesteg 48 Sekunden zu seiner Startzeit hinzufügen.

Wie kann ich diesen Scan im Jetty-Maven-Plugin einschränken? Ich habe Jetty startup delay due to scanning gefunden, aber bevor ich einige externe Jetty-Konfiguration machen und dies ist die Maven-Konfiguration, möchte ich sicherstellen, dass es keine einfachere Option gibt.

sieht vielversprechend aus, aber ich bin mir nicht sicher, wie es weitergehen soll (da das Maven-Plugin nicht erwähnt wird).

meine pom.xml-Datei ist unten enthalten:

<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> 

Antwort

15

Dies ist, was ich für meine Projekte verwenden Jetty Start zu beschleunigen gerade aus dem Maven pom.xml Datei (keine externe Konfiguration erforderlich):

 <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> 

Verwenden Sie einen beliebigen Regex Ihrer Wahl (wenn Sie Servlet-Initialisierer verwenden). Beachten Sie, dass ^$ alles ausschließt.

+0

Mein Gott, diese Antwort sollte mehr im Vordergrund stehen. Ich habe versucht, 'metadata-complete =" true "zu in web.xml ohne Erfolg hinzuzufügen. – cheeze

+0

Upvoting, obwohl das nicht ganz richtig ist. Diese Regex hat es für mich getan (für JSF 2.2 und 2.3): '. * Javax [^ /] * \. Jar $ |. * Jsf [^ /] * \. Jar $' – Lars