2009-12-09 4 views
7

Ich habe eine Webapp geerbt, die mit NetBeans interner Ameise gebaut wurde.maven webapp zum Platzieren von jsps in/WEB-INF/jsp

Alle jsps befinden sich in:

WEB-INF/jsp 

Und die web.xml hat Links fest einprogrammiert /WEB-INF/jsp/somefile.jsp

Wie kann ich das Maven-Krieg-Plugin verwenden die platzieren JSP dort, Aufrechterhaltung der Konsistenz mit der aktuellen Struktur?

Mein pom zur Zeit liest:

<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory> 

Antwort

12

Was das Problem? Lassen Sie uns ein Standard-Krieg Projektstruktur aussehen:

 
$ mvn archetype:create -DgroupId=com.mycompany.app \ 
> -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp 
... 
$ tree my-webapp/ 
my-webapp/ 
|-- pom.xml 
`-- src 
    `-- main 
     |-- resources 
     `-- webapp 
      |-- WEB-INF 
      | `-- web.xml 
      `-- index.jsp 

5 directories, 3 files 

keine Notwendigkeit, etwas zu konfigurieren, nur unter src/main/webapp/WEB-INF/jsp Ihre JSPs setzen und los geht.

EDIT: Ich verstehe nicht, warum Sie die folgende Zeile in der Maven-Krieg-Plugin-Konfiguration haben:

<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory> 

Was ist das erwartete Verhalten? Warum verwenden Sie nicht den Standardwert ${basedir}/src/main/webapp?

+0

Ja, ich bin selbst ein wenig verwirrt ... –

+1

Vous avez raison. Ich habe mein warsourcedir in $ {basedir}/web geändert und es funktioniert. –

2

Beachten Sie auch, dass alles in src/main/resources "auf dem Classpath" ist, d. H. Es wird bei der Erstellung des Krieges in my-webapp/WEB-INF/classes kopiert. Das ist also ein guter Platz, um Ihre Konfigurationsdateien zu speichern, zum Beispiel log4j.xml/logback.xml oder Spring's andere config-Dateien applicationContext.xml und Spring, auf die Sie dann leicht mit classpath: somefile.xml verweisen können.

Was macht das auch sehr schön ist, Sie können Filter in Maven einrichten, so dass es die Dateien von src/resources transformiert, bevor es sie in die WAR-Datei einfügt.

Wenn Sie Konfigurationsdateien außer web.xml in src/main/webapp/WEB-INF haben, denken Sie darüber nach, sie in das Verzeichnis src/main/resources zu verschieben.

Verwandte Themen