将Richfaces添加到Maven项目中

时间:2011-11-15 13:49:31

标签: java maven richfaces

我想将Richfaces 3.3.3添加到Maven Project,然后将其部署到JBoss AS6。

我关注了网站:http://community.jboss.org/wiki/HowToAddRichFaces33xToMavenBasedProject。我在pom.xml中添加了一个依赖项。但它没有用。

在部署到JBoss后,我打开了war-project,并没有richfaces-library。

你告诉我,我的问题在哪里?感谢

的pom.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.openmind-software</groupId>
    <artifactId>OMProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>Java EE 6 webapp project</name>
    <description>A starter Java EE 6 webapp project for use on Java EE 6-compliant application servers, generated from the jboss-javaee6-webapp archetype</description>

    <properties>
        <!-- Explicitly declaring the source encoding eliminates the following message: -->
        <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- Timestamp format for the maven.build.timestamp property -->
        <!-- You can reference property in pom.xml or filtered resources (must enable third-party plugin if using Maven < 2.1) -->
        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
        <!-- To specify the JBoss AS directory the "Maven way", set the jboss.home property in an active profile in $HOME/.m2/settings.xml -->
        <!-- By default, we assign it to the value of the JBOSS_HOME envrionment variable -->
        <jboss.home>${env.JBOSS_HOME}</jboss.home>
        <jboss.domain>default</jboss.domain>
        <arquillian.version>1.0.0.Alpha5</arquillian.version>
        <jboss-javaee6-spec.version>1.0.0.Final</jboss-javaee6-spec.version>
    </properties>

    <repositories>
        <!-- The JBoss Community public repository is a composite repository of several major repositories -->
        <!-- see http://community.jboss.org/wiki/MavenGettingStarted-Users -->
        <!-- At the time of writing, Arquillian and the JBoss Java EE specification POMs are only in the JBoss Community public 
            repository (not Maven central) -->
        <repository>
            <id>jboss-public-repository</id>
            <name>JBoss Repository</name>
            <url>http://repository.jboss.org/nexus/content/groups/public</url>
            <!-- These optional flags are designed to speed up your builds by reducing remote server calls -->
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>jboss-public-repository</id>
            <name>JBoss Repository</name>
            <url>http://repository.jboss.org/nexus/content/groups/public</url>
            <!-- These optional flags are designed to speed up your builds by reducing remote server calls -->
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <!-- Set to true to fix error in which Maven cannot find org.apache.maven.plugins:maven-archetype-plugin:maven-plugin:2.0-alpha-6-SNAPSHOT -->
                <updatePolicy>daily</updatePolicy>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <dependencies>
        <!-- Annotation processor to generate the JPA 2.0 metamodel classes for typesafe criteria queries -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>1.1.1.Final</version>
            <scope>provided</scope>
            <!-- Excluded because it's provided by the Java EE 6 dependencies -->
            <exclusions>
                <exclusion>
                    <groupId>org.hibernate.javax.persistence</groupId>
                    <artifactId>hibernate-jpa-2.0-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Seam Solder provides convenient, portable CDI extensions such as an injectable logger -->
        <dependency>
            <groupId>org.jboss.seam.solder</groupId>
            <artifactId>seam-solder</artifactId>
            <version>3.0.0.Final</version>
        </dependency>

        <!-- JSR-303 (Bean Validation) Implementation -->
        <!-- Provides portable constraints such as @Email -->
        <!-- Hibernate Validator is the only JSR-303 implementation at the moment, so we can assume it's provided -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.1.0.Final</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Needed for running tests (you may also use TestNG) -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>

        <!-- Optional, but highly recommended -->
        <!-- Arquillian allows you to test enterprise code such as EJBs and Transactional(JTA) JPA from JUnit/TestNG -->
        <dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-junit</artifactId>
            <version>${arquillian.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.richfaces.framework</groupId>
            <artifactId>richfaces-impl-jsf2</artifactId>
            <version>3.3.3.Final</version>
            <type>pom</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.tomahawk</groupId>
            <artifactId>tomahawk20</artifactId>
            <version>1.1.11</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!-- Compiler plugin enforces Java 1.6 compatibility and activates annotation processors -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!-- The default profile skips all tests, though you can tune it to run just unit tests based on a custom pattern -->
            <!-- Seperate profiles are provided for running all tests, including Arquillian tests that execute in the specified container -->
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <dependencies>
                <!-- Java EE 6 API dependency -->
                <!-- This one dependency imports all APIs available for a Java EE 6.0 application -->
                <dependency>
                    <groupId>org.jboss.spec</groupId>
                    <artifactId>jboss-javaee-6.0</artifactId>
                    <version>${jboss-javaee6-spec.version}</version>
                    <type>pom</type>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.4.3</version>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                    <!-- Optional plugin deploys your war to a local JBoss AS container -->
                    <!-- To use, set the JBOSS_HOME environment variable (or jboss.home in $HOME/.m2/settings.xml) and run:
                         mvn package jboss:hard-deploy -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>jboss-maven-plugin</artifactId>
                        <version>1.4.1</version>
                        <configuration>
                            <jbossHome>${jboss.home}</jbossHome>
                            <serverName>${jboss.domain}</serverName>
                            <fileNames>
                                <!-- JNDI DataSource that connects to in-memory HSQLDB to demonstrate JPA -->
                                <fileName>src/main/resources-jbossas/default-ds.xml</fileName>
                                <!-- DataSource needs to go before the application -->
                                <fileName>${project.build.directory}/${project.build.finalName}.war</fileName>
                            </fileNames>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <!-- An optional Arquillian testing profile that executes tests in GlassFish Embedded -->
            <!-- Tests are broken under Arquillian 1.0.0.Alpha5 since sun-resources.xml is not supported -->
            <!-- Run with: mvn clean test -Parq-glassfish-embedded -->
            <id>arq-glassfish-embedded</id>
            <dependencies>
                <dependency>
                    <groupId>org.jboss.arquillian.container</groupId>
                    <artifactId>arquillian-glassfish-embedded-3.1</artifactId>
                    <version>${arquillian.version}</version>
                    <scope>test</scope>
                </dependency>
                <!-- This imports the Java EE 6 runtime libraries provided by GlassFish Embedded -->
                <dependency>
                    <groupId>org.glassfish.extras</groupId>
                    <artifactId>glassfish-embedded-all</artifactId>
                    <version>3.1</version>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <build>
                <testResources>
                    <testResource>
                        <directory>src/test/resources</directory>
                    </testResource>
                    <!-- Overrides default configuration to use alternate persistence.xml with eclipselink settings and declare 
                        a Glassfish Datasource -->
                    <!-- Used by Arquillian -->
                    <testResource>
                        <directory>src/test/resources-glassfish-embedded</directory>
                    </testResource>
                </testResources>
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <!-- don't use version 2.5 as it creates seperate test suites per class -->
                        <version>2.4.3</version>
                        <configuration>
                            <systemProperties>
                                <!-- This optional property fixes an annoyance with Glassfish that puts derby.log in the project 
                                    root -->
                                <property>
                                    <name>derby.stream.error.file</name>
                                    <!-- If you save the log in target it is less likely to get committed in your project -->
                                    <value>target/derby.log</value>
                                </property>
                            </systemProperties>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <!-- An optional Arquillian testing profile that executes tests in a remote JBoss AS instance -->
            <!-- Run with: mvn clean test -Parq-jbossas-remote -->
            <id>arq-jbossas-remote</id>
            <dependencies>
                <dependency>
                    <groupId>org.jboss.arquillian.container</groupId>
                    <artifactId>arquillian-jbossas-remote-6</artifactId>
                    <version>${arquillian.version}</version>
                    <scope>test</scope>
                </dependency>
                <!-- Java EE 6 API dependency -->
                <!-- This one dependency imports all APIs available for a Java EE 6.0 application -->
                <dependency>
                    <groupId>org.jboss.spec</groupId>
                    <artifactId>jboss-javaee-6.0</artifactId>
                    <version>${jboss-javaee6-spec.version}</version>
                    <type>pom</type>
                    <scope>provided</scope>
                </dependency>
                <!-- needed for org.jnp.interfaces.NamingContextFactory -->
                <dependency>
                    <groupId>org.jboss.jbossas</groupId>
                    <artifactId>jboss-as-profileservice-client</artifactId>
                    <version>6.0.0.Final</version>
                    <type>pom</type>
                    <scope>test</scope>
                </dependency>
                <!-- jboss-deployers-client-spi provides deployment exception class -->
                <dependency>
                    <groupId>org.jboss.deployers</groupId>
                    <artifactId>jboss-deployers-client-spi</artifactId>
                    <version>2.2.0.GA</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <testResources>
                    <testResource>
                        <directory>src/test/resources</directory>
                    </testResource>
                    <!-- Overrides default configuration to use alternate persistence.xml with default JBoss AS data source -->
                    <!-- Used by Arquillian -->
                    <testResource>
                        <directory>src/test/resources-jbossas</directory>
                    </testResource>
                </testResources>
            </build>
        </profile>

        <profile>
            <id>arq-weld-ee-embedded</id>
            <dependencies>
                <dependency>
                    <groupId>org.jboss.arquillian.container</groupId>
                    <artifactId>arquillian-weld-ee-embedded-1.1</artifactId>
                    <version>${arquillian.version}</version>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.jboss.spec</groupId>
                    <artifactId>jboss-javaee-6.0</artifactId>
                    <version>${jboss-javaee6-spec.version}</version>
                    <type>pom</type>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>org.jboss.weld</groupId>
                    <artifactId>weld-core</artifactId>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.jboss.weld</groupId>
                    <artifactId>weld-api</artifactId>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-simple</artifactId>
                    <scope>test</scope>
                </dependency>
            </dependencies>
          <dependencyManagement>
                <dependencies>
                    <dependency>
                        <groupId>org.jboss.weld</groupId>
                        <artifactId>weld-core-bom</artifactId>
                        <version>1.1.1.Final</version>
                        <type>pom</type>
                        <scope>import</scope>
                    </dependency>
                </dependencies>
            </dependencyManagement>
        </profile>
    </profiles>
</project>

1 个答案:

答案 0 :(得分:1)

您提到的链接指出'从上面开始除了ui依赖,您必须添加所需版本的richfaces-impl'。但是我没有在你的pom中看到这种依赖:

<dependency>
  <groupId>org.richfaces.ui</groupId>
  <artifactId>richfaces-ui</artifactId>
  <version>${richfaces.version}</version>
</dependency>