java - 将 Richfaces 添加到 Maven 项目

标签 java maven richfaces

我想将 Richfaces 3.3.3 添加到 Maven 项目,然后将其部署到 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>

最佳答案

您提到的链接指出“因此,除了上面的 ui 依赖项之外,您还必须添加所需版本的 richfaces-impl”。然而,我在你的 pom 中没有看到这种依赖关系:

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

关于java - 将 Richfaces 添加到 Maven 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137336/

相关文章:

Java和openssl C不同的AES CTR加密结果

java - 滚动背景,JAVA

java - 如何在 Glassfish 上将 Amazon Java SDK 与 Maven 一起使用?

java - GWTTestCase 和设置持久数据源

java - commons-logging-1.1.jar;无法读取 zip 文件条目

web-services - 如何将目标文件夹中生成的源文件添加为Intellij Idea中的库

java - openfaces 树表缺少 js

jsf - 如何使用jsf为表中的每一行获取单选按钮组功能

java - 迁移到 RichFaces 4 : HtmlAjaxCommandLink -> UICommandButton

Java:我在 Main 方法中的语句正在打印,但在其他方法中却没有打印