2016-12-20 9 views
-1

Ich implementiert ein gemeinsames Modul, das Pakete als Krieg ist, sagen common_module.war. Ich muss dieses common_module.war in einer anderen Testanwendung verwenden. In meiner lokalen Eklipse, wenn ich common_module.war als Abhängigkeit von der Testanwendung einschließe, kann ich auf alle jsps & Java-Klassen von common_module.war in der Testanwendung zugreifen. So weit, ist es gut.Maven - Abhängigkeit Krieg entpacken

Jetzt ist das Problem, um es auf dem Server bereitzustellen. Ich habe das common_module.war in den Ordner meines Unternehmens-Artefakts hochgeladen. Und diesen Pfad in den Repository-Pfaden eingeschlossen. Jetzt kann die Testanwendung nicht auf die jsps von common_module.war zugreifen.

Was mache ich hier falsch?

Fehler ist - ich bin die JSP des gemeinsamen Moduls in Test-Anwendung. Dort kann ich rote Markierung Fehler jsp nicht gefunden finden.

<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/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
    <groupId>test_group_id</groupId> 
    <artifactId>test_artifact</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>test</name> 
    <description>test</description> 
<repositories> 
     <repository> 
      <id>central</id> 
      <name>Maven Repository Switchboard</name> 
      <layout>default</layout> 
      <url>http://repo1.maven.org/maven2</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>my_company_name</id> 
      <url>path_to_my_company_artifactory</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
     </repository> 
    </repositories> 
    <dependencies> 
    <dependency> 
      <groupId>common_module_group_id</groupId> 
       <artifactId>common_module_artifact</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <type>war</type> 
     <scope>runtime</scope> 
     </dependency> 
     </dependencies> 
    <plugins> 

      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <outputDirectory>${project.build.directory}/../package/dependencies/jbossews/webapps</outputDirectory> 
        <warSourceDirectory>/src/main/webapp</warSourceDirectory> 
         <webXml>src\main\webapp\WEB-INF\web.xml</webXml> 
        <attachClasses>true</attachClasses> 
       <classesClassifier>classes</classesClassifier> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.4</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <appendAssemblyId>false</appendAssemblyId> 
        <descriptors> 
         <descriptor>assembly.xml</descriptor> 
        </descriptors> 
       </configuration> 
      </plugin> 
      <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
     </plugins> 
</project> 
+0

Wurde das Artefakt korrekt bereitgestellt? Können Sie dies im Serverprotokoll bestätigen? –

+0

Ja Artefakt bereitgestellt gut. – user1457957

+0

poste deine Pom- und Fehlerinformationen. –

Antwort

0

Es scheint mir, dass Sie eine web-fragment umzusetzen versuchen. Dies ist eine JAR-Datei (keine WAR-Datei), die in das WEB-INF/lib-Verzeichnis einer Webanwendung aufgenommen werden kann. Es kann die gleichen Komponenten wie eine WAR-Datei enthalten, einschließlich JSPs; es ist nur anders verpackt.

Die JAR-Datei sollte eine META-INF/web-fragment.xml-Datei enthalten und JSPs sollten im Verzeichnis META-INF/resources gepackt sein. Der Servlet-Container behandelt JSP-Dateien in diesem Verzeichnis so, als befänden sie sich im Stammverzeichnis Ihrer WAR-Datei. web-fragment.xml ist im Wesentlichen eine Teilmenge der normalen web.xml-Datei.

Dies ist Servlet 3.0 + -Funktion.

Siehe §8.2 und §10.5 der Java Servlet Spezifikation 3.0/3.1.

+0

kann ich dies nicht mit Maven Overlay-Funktion erreichen? – user1457957

+0

Grundsätzlich möchte ich im Testprojekt auf jsps & java Klassen von common moudle zugreifen. In meiner lokalen Überlagerungsfunktion funktioniert und kann zugegriffen werden. aber wenn ich die gemeinsame modul war-datei auf den server nur das problem hochladen – user1457957

0

War Overlay-Funktion hat mir geholfen, dieses Problem zu lösen. Es funktioniert jetzt gut.