Maven: Archetype für JSF-Spring Projekt

So weit so gut.

In meiner Webanwendung habe ich jetzt zumindest eine Ordnerstruktur (src/main/webapp/...) aber immer noch kein /src/test/... obwohl JUnit hinzugefügt wurde. Dummerweise ist der Source-Ordner auch nicht als solcher in der Eclipse-Konfiguration vorhanden (wird nur als normaler Ordner angezeigt).

Ich habe gestern und heute noch weitere Plugins ausprobiert, wie z.B. das eclipse-plugin aber das bringt mich hier auch nicht weiter. Auch mein Springprojekt hat keinerlei SourceOrdner (nur META-INF und target). Ich vermute mal das der Archetype Wizard noch diverse mavne-commands direkt ausführt um diese Einstellungen zu machen, denn das vorher erwähnte POM-file welches aus der Archetyp-Wizard stammt ersellt mittels import auch keine Quellordner (weder nomarle noch für tests).

Ich weis, ich sollte es mal mit einem Maven-Buch versuchen, aber bis das hier in Island ist dauerts ein paar Wochen und im Moment scheint Amazon hier eh nicht hinzuliefern ;)

Ich füge einfach mal meine 3 poms an. Sind wahrscheinlich ein paar Sachen nicht korrekt, weil ich einfach schon zig Sachen probiert habe nur um das Grundgerüst vernünftig in Eclipse reinzubringen
EDIT: und vorher noch ein Bild wie's ausschaut
bild.jpg


XML:
<?xml version="1.0" encoding="UTF-8"?>
<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>de.eye4eye</groupId>
	<artifactId>karlsbande</artifactId>
	<packaging>pom</packaging>
	<version>0.0.1</version>
	<name>Karlsbande Modular Application</name>
	<url>http://www.mycompany.com</url>

	<modules>
		<module>core</module>
		<module>web</module>
	</modules>

	<build>
		<defaultGoal>install</defaultGoal>
		
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<version>2.5.1</version>
				<configuration>
					<useProjectReferences>false</useProjectReferences>
					<additionalProjectFacets>
						<jst.jsf>1.2</jst.jsf>
					</additionalProjectFacets>
					<additionalProjectnatures>
						<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
					</additionalProjectnatures>
					<additionalBuildcommands>
						<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
					</additionalBuildcommands>
					<downloadSources>true</downloadSources>
					<downloadJavadocs>true</downloadJavadocs>
					<wtpversion>1.5</wtpversion>					
				</configuration>
			</plugin>
		</plugins>

	</build>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.5</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<reporting>
		<plugins>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-surefire-report-plugin</artifactId>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<profile>
			<id>derby</id>
			<properties>
				<hibernate.dialect>org.hibernate.dialect.DerbyDialect</hibernate.dialect>
				<jdbc.groupId>org.apache.derby</jdbc.groupId>
				<jdbc.artifactId>derbyclient</jdbc.artifactId>
				<jdbc.version>10.2.2.0</jdbc.version>
				<jdbc.driverClassName>org.apache.derby.jdbc.ClientDriver</jdbc.driverClassName>
				<jdbc.url><![CDATA[jdbc:derby://localhost/adsad;create=true]]></jdbc.url>
				<jdbc.username>any</jdbc.username>
				<jdbc.password>value</jdbc.password>
			</properties>
		</profile>
	</profiles>

	<properties>
		<!-- Framework dependency versions -->
		<spring.version>2.5.6</spring.version>

		<!-- Testing dependency versions -->
		<jsp.version>2.1</jsp.version>
		<junit.version>4.5</junit.version>
		<servlet.version>2.5</servlet.version>


		<!-- Cargo settings -->
		<cargo.container>tomcat6x</cargo.container>
		<cargo.container.home>${env.CATALINA_HOME}</cargo.container.home>
		<cargo.host>localhost</cargo.host>
		<cargo.port>8080</cargo.port>
		<cargo.wait>false</cargo.wait>

		<!-- Database settings -->
		<dbunit.dataTypeFactoryName>org.dbunit.dataset.datatype.DefaultDataTypeFactory</dbunit.dataTypeFactoryName>
		<dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
		<hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect>
		<jdbc.groupId>mysql</jdbc.groupId>
		<jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
		<jdbc.version>5.0.5</jdbc.version>
		<jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
		<jdbc.url><![CDATA[jdbc:mysql://localhost/adsad?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
		<jdbc.username>root</jdbc.username>
		<jdbc.password></jdbc.password>
	</properties>
</project>



XML:
<?xml version="1.0" encoding="UTF-8"?>
<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>
	<parent>
		<groupId>de.eye4eye</groupId>
		<artifactId>karlsbande</artifactId>
		<version>0.0.1</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<artifactId>karlsbande-core</artifactId>
	<packaging>jar</packaging>
	<name>Karlsbande - Core</name>
	
	<build>
		<finalName>karlsbande-core</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.2</version>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring</artifactId>
			<version>2.5.6</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>2.5.6</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>


XML:
<?xml version="1.0" encoding="UTF-8"?>
<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> 
    <parent>
        <groupId>de.eye4eye</groupId>
        <artifactId>karlsbande</artifactId>
        <version>0.0.1</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    
    <artifactId>karlsbande-web</artifactId>
    <packaging>war</packaging>
    <name>Karlsbande - Web</name>
    
    <build>
        <finalName>karlsbande-web</finalName>
        <plugins>
        	<plugin>
        		<groupId>org.apache.maven.plugins</groupId>
        		<artifactId>maven-compiler-plugin</artifactId>
        		<configuration>
        			<source>1.6</source>
        			<target>1.6</target>
        		</configuration>
        	</plugin>
        	<plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <dependentWarExcludes>
                        **/jdbc.properties,**/hibernate.cfg.xml,**/sql-map-config.xml,**/web.xml,WEB-INF/classes/META-INF/**
                    </dependentWarExcludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
    	<dependency>
    		<groupId>tomcat</groupId>
    		<artifactId>servlet-api</artifactId>
    		<version>5.5.23</version>
    		<type>jar</type>
    		<scope>provided</scope>
    	</dependency>
    </dependencies>
    <dependencyManagement>
    	<dependencies>
    		<dependency>
    			<groupId>de.eye4eye</groupId>
    			<artifactId>karlsbande-core</artifactId>
    			<version>0.0.1</version>
    			<type>jar</type>
    			<scope>compile</scope>
    		</dependency>
    	</dependencies>
    </dependencyManagement>
    </project>
 
Zuletzt bearbeitet von einem Moderator:
Ok, anstatt ein POM zu importieren, habe ich jetzt alles mittels Eclipse angelegt.

Zuerst ein simples pom-projekt und dann die zwei Modul-Projekte hinzugefügt. Das Spring-Projekt tut jetzt seinen Job und hat auch die SpringNature. Nur im Webprojekt bekomme ich das JSF-Facet nicht hin. Komischerweise wird auch der JSFEditor nicht korrekt geladen, es wird nur das xml angezeigt (die restlichen Editor Tabs fehlen)
 
Ich greife mal diesen Thread wieder auf, da ich vor ähnlichen Problemen stehe.

Ich bin Maven-Neuling und verwende aktuell Eclipse Helios mit dem m2eclipse-Plugin in Version 0.10.
Maven sah zuerst wie das unbekannte Land aus, aber mittlerweile habe ich mich etwas eingelesen und das erste Multimodule-Projekt erstellt. Genau wie der Threadersteller möchte auch ich ein JSF-Projekt mit Maven erstellen. Als Archetype habe ich hier "webapp-javaee6". Das erstellt mir schon mal die Projektstruktur wie man sie von einem Dynamic Web Project kennt.

Jetzt ist das Problem, wie bekomme ich es hin, dass ich in den xhtml-Seiten auch die Code Completion der JSF-Tags benutzen kann. Wenn ich die JSF-Dependencies in der POM hinzufüge, reicht das offenbar nicht. Ich habe dann noch herausgefunden, dass ich in den Projekteigenschaften die JSF Facet aktivieren kann. Dann habe ich die gewünschte Code Completion Funktionalität, allerdings habe ich ja dadurch die JSF Jars direkt verdrahtet anstatt diese über die Maven Dependencies aufzulösen.

Geht das so? Ist das der richtige Weg?

Vielen Dank schon mal im Voraus
 
Zurück