2017-06-29 1 views
1

Ich folge der Dokumentation here, aber ich am Ende mit einem jar, die nicht finden, die war auszuführen. Hier ist der Fehler:Apache Tomcat Maven Plugin Krieg nicht gefunden

java.io.FileNotFoundException: C:\Users\ortizj\Documents\NetBeansProjects\valida 
tion-manager\Validation-Manager-Web\target\.extract\webapps\ROOT.war (The system 
cannot find the file specified) 

Aus irgendeinem Grund die war Datei nicht auf die jar hinzugefügt wird, so scheitert es, wenn es sie zu extrahieren.

ROOT.war existiert und ist im Zielordner vorhanden.

Hier ist der relevante POM Inhalt:

POM Project:

<profile> 
     <id>installer</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.tomcat.maven</groupId> 
        <artifactId>tomcat7-maven-plugin</artifactId> 
        <version>2.2</version> 
        <executions> 
         <execution> 
          <id>tomcat-run</id> 
          <goals> 
           <goal>exec-war-only</goal> 
          </goals> 
          <phase>package</phase> 
          <configuration> 
           <warRunDependency> 
            <dependency> 
             <groupId>${project.groupId}</groupId> 
             <artifactId>Validation-Manager-Web</artifactId> 
             <version>${project.version}</version> 
             <type>war</type> 
            </dependency> 
            <charset>utf-8</charset> 
            <httpPort>9078</httpPort> 
            <contextPath>/</contextPath> 
           </warRunDependency> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
+0

Überprüfen Sie einfach: haben Sie beide Poms wie in http://tomcat.apache.org/maven-plugin-2.2/executable-war-jar.html erstellt? Sie zeigen nur 1 oben. – mikep

+0

Aktualisiert die Frage, die beide relevanten Pom-Dateien zeigt. – javydreamercsw

Antwort

1

Du den Anstand auf Krieg fehlt. Daher ist es nicht inbegriffen:

<warRunDependencies> 
    <warRunDependency> 
    <dependency> 
     <groupId>a groupId</groupId> 
     <artifactId>and artifactId</artifactId> 
     <version>version</version> 
     <type>war</type> 
    </dependency> 
    <contextPath>/</contextPath> 
    </warRunDependency> 
</warRunDependencies> 
+0

Sehen Sie die aktualisierte Frage mit aktualisierten POMs sowie einen Link zu ihnen. Trotzdem bekomme ich auch nach deinem Vorschlag keine Kriegsakte. – javydreamercsw

+0

Sie müssen nur das tomcat7-maven-plugin angeben (vorzugsweise in der Elternpom.xml) und _all_ die Konfiguration muss dorthin gehen. Und ich schlage vor, Sie entfernen die externe context.xml, es sei denn, Sie haben einen sehr guten Grund, es dort zu setzen. – fhossfel

+0

Hat dies und immer noch nicht funktioniert. Ich hatte das Kontextstück, denn selbst wenn ich den Krieg manuell in den .extracted-Ordner legte und alles zu funktionieren schien, fand er keine Variablen, die in der Kontextdatei definiert waren. – javydreamercsw

1

Wie wäre es, diese zu Ihrer pom.xml Datei ..

    <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-war-plugin</artifactId> 
         <version>${maven-war-plugin.version}</version> 
         <configuration> 
          <warSourceDirectory>src/main/webapp</warSourceDirectory> 
          <warName>your-war-name</warName> 
          <failOnMissingWebXml>false</failOnMissingWebXml> 
          <outputDirectory>${deploy-path}</outputDirectory> 
         </configuration> 
        </plugin> 
-1

Als Alternative für tomcat, können Sie Anlegesteg als Server verwenden. Daher sollte POM fließende Plugins hinzugefügt werden.

<pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <warSourceDirectory>src/main/webapp</warSourceDirectory> 
       <warName>myapp</warName> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.4.5.v20170502</version> 
      <configuration> 
       <scanIntervalSeconds>10</scanIntervalSeconds> 
       <webApp> 
        <contextPath>/myapp</contextPath> 
       </webApp> 
      </configuration> 
     </plugin> 
    </plugins> 
</pluginManagement> 

Sie können es wie folgt ausführen.

mvn clean install 
mvn jetty:run 

Sie App wird auf Standard-Port 8080 unter den gegebenen Kontext (In diesem "myapp") beginnen werden.

+0

Dies geht nicht auf die Frage ein. Dies erfordert Quellen usw., um den Server auszuführen. Ich möchte eine Stand-Alone-Option, um zu verteilen, wie das Tomcat-Plugin tun soll. – javydreamercsw

Verwandte Themen