Send your remarks, comments or wishes to doc team
Subject:
Message:
Your name:
Your email:

JBoss.org Community Documentation

- Prev
- Next

## 4.1. Creating project for component

At first we need to create a project for the component itself. In the library directory Sandbox you just created, launch the following command (all in one line):

    mvn archetype:create -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-jsf-component -DarchetypeVersion=3.3.0.GA -DartifactId=inputDate

As is easy to see a new directory with the name inputDate will be created. It does not have any components in it yet, but it has this predefined structure:

Figure 4.1. The project structure

Here are the main directories with descriptions:

Table 4.1. The project structure

Directory | Description
--- | ---
src/main/config | Contains the metadata for the components
src/main/java | Contains Java code (both pre-generated and created by you)
src/main/resources | Used to store resource files, such as pictures, JavaScript and CSS files
src/main/templates | Used to contain the JSP-like templates that define the component layout

It is necessary to extend a predefined structure with the following directories:

Table 4.2. The project structure

Directory | Description
--- | ---
src/main/config/resources | Contains the resource-config.xml file for the resources registration
src/main/java/org/mycompany/renderkit | Contains Renderer Base class
src/main/resources/org/mycompany/renderkit/html/css | Used to store CSS files
src/main/resources/org/mycompany/renderkit/html/images | Used to store images
src/main/templates/org/mycompany | Used to contain the JSP-like template

Now you should add maven-compiler-plugin to the plugins section in the inputDate/pom.xml file:

    ...

    <plugin>

        <artifactId>maven-compiler-plugin</artifactId>

        <inherited>true</inherited>

        <configuration>

            <source>1.5</source>

            <target>1.5</target>

        </configuration>

    </plugin>

    ...

Finally your inputDate/pom.xml should look like this one:

    <?xml version="1.0"?>

    <project>

        <parent>

            <artifactId>sandbox</artifactId>

            <groupId>org.mycompany</groupId>

            <version>1.0-SNAPSHOT</version>

        </parent>

        <modelVersion>4.0.0</modelVersion>

        <groupId>org.mycompany</groupId>

        <artifactId>inputDate</artifactId>

        <name>inputDate</name>

        <version>1.0-SNAPSHOT</version>

        <build>

            <plugins>

                <plugin>

                    <groupId>org.richfaces.cdk</groupId>

                    <artifactId>maven-cdk-plugin</artifactId>

                    <version>3.3.0.GA</version>

                    <executions>

                        <execution>

                            <phase>generate-sources</phase>

                            <goals>

                                <goal>generate</goal>

                            </goals>

                        </execution>

                    </executions>

                    <configuration>

                        <library>

                            <prefix>org.mycompany</prefix>

                            <taglib>

                                <shortName>inputDate</shortName>

                            </taglib>

                        </library>

                    </configuration>

                </plugin>

                <plugin>

                    <artifactId>maven-compiler-plugin</artifactId>

                    <inherited>true</inherited>

                    <configuration>

                        <source>1.5</source>

                        <target>1.5</target>

                    </configuration>

                </plugin>

            </plugins>

        </build>

        <dependencies>

            <dependency>

                <groupId>junit</groupId>

                <artifactId>junit</artifactId>

                <version>3.8.1</version>

                <scope>test</scope>

            </dependency>

            <dependency>

                <groupId>org.richfaces.framework</groupId>

                <artifactId>richfaces-impl</artifactId>

                <version>3.3.0.GA</version>

            </dependency>

        </dependencies>

    </project>

- PrevChapter 4. inputDate component development
- Top of page
- Front page
- Next4.2. Creating and building component skeleton