This page (revision-6) was last changed on 30-Dec-2013 13:27 by Dieter Käppel

This page was created on 16-Dec-2012 21:47 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
6 30-Dec-2013 13:27 4 KB Dieter Käppel to previous
5 30-Dec-2013 13:27 4 KB Dieter Käppel to previous | to last
4 11-Feb-2013 08:24 4 KB Dieter Käppel to previous | to last
3 16-Dec-2012 21:51 4 KB Dieter Käppel to previous | to last
2 16-Dec-2012 21:49 4 KB Dieter Käppel to previous | to last
1 16-Dec-2012 21:47 1 KB Dieter Käppel to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
[JSF Workspace] ist ein Tool zum Entwickeln von [JSF] Modulen mit [Maven].
[JSF Workspace] ist ein Tool zum Entwickeln von [JSF] Modulen mit [Maven]. Das [Produkt|Intersult Produkte] kann aus dem [Intersult Maven Repository] bezogen werden.
At line 10 changed 2 lines
* Mit dem [WAR Maven Plugin] kann das Projekt in target/${build.}
* [Eclipse] unterstützt durch das Maven-4-Eclipse-Plugin (M4E-Plugin) das synchrone Debuggen
* Mit dem [WAR Maven Plugin] kann das Projekt in ${project.build.directory}/${project.build.finalName} (also target/name) gebaut und gestartet werden
* [Eclipse] unterstützt durch das Maven-Eclipse-Plugin (M2E-Plugin) das synchrone Debuggen
At line 13 changed one line
Das M4E-Plugin stellt die Option Resolve Workspace Artifacts zur Verfügung. Das gestartete WAR-Projekt referenziert somit alle Maven-Artifakte die sich im Eclipse-Workspace befinden direkt und nicht mehr über das lokale Maven-Repository. Der Vorteil besteht in schneller Entwicklung der JARs, da kein kompletter Build-Zyklus mit Server-Neustart mehr notwendig ist.
Das M2E-Plugin stellt die Option Resolve Workspace Artifacts zur Verfügung. Das gestartete WAR-Projekt referenziert somit alle Maven-Artifakte die sich im Eclipse-Workspace befinden direkt und nicht mehr über das lokale Maven-Repository. Der Vorteil besteht in schneller Entwicklung der JARs, da kein kompletter Build-Zyklus mit Server-Neustart mehr notwendig ist.
At line 15 changed one line
In dieser Konfiguration arbeitet leider das Annotation-Scanning von JSF nicht mehr korrekt. Dadurch geht die Funktionalität der JSF-Annotationen in den referenzierten Workspace-JSF-JARs verloren.
__Herausforderung:__ In der Standard-Konfiguration kann JSF keine Annotations scannen, die sich außerhalb von JARs, also im Workspace befinden. Man braucht eine Erweiterung, um JSF-Artifakte im Workspace entwickeln zu können.
At line 24 added 104 lines
!!!Configuration
Die pom.xml kann zum Beispiel so konfiguriert werden:
{{{
<finalName>${project.artifactId}</finalName>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
<extensions>
<extension>
<groupId>com.intersult</groupId>
<artifactId>war-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<port>80</port>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<port>80</port>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-jsp</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/webapp</directory>
</resource>
</resources>
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<dependencies>
...
<dependency>
<groupId>com.intersult</groupId>
<artifactId>jsf-workspace</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>intersult-repo</id>
<name>Intersult Repository</name>
<url>http://intersult.com/public/maven</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>intersult-repo</id>
<name>Intersult Repository</name>
<url>http://intersult.com/public/maven</url>
</pluginRepository>
</pluginRepositories>
}}}
Dabei reicht aus, die Dependency für [JSF Workspace] im Maven-Scope Provided rein zu nehmen, diese befindet sich beim Debugger-Start dann im Class-Path. Im finalen WAR wird sie nicht mit eingebunden, da ist sie schließlich nicht erforderlich.
Hier die M2E Launch-Config für den embedded Tomcat 7 über das tomcat7-maven-plugin
[{Image src='JSF Workspace/tomcat7 launch config.PNG' width='100%'}]