一、创建骨架

1、在本地demo文件夹下,执行命令行语句:

mvn archetype:create -DarchetypeGroupId=org.codehaus.plexus -DarchetypeArtifactId=plexus-archetype-component-simple -DarchetypeVersion=1.0-alpha-1-SNAPSHOT -DgroupId=org.codehaus.plexus -DartifactId=plexus-website-monitor-component  -DpackageName=org.codehaus.plexus.tutorial -Dpackaging=jar -DremoteRepositories=http://snapshots.repository.codehaus.org/

通过以上命令,在本地创建了基础的工程结构,可以开始plexus开发了。

2、导入eclipse略

二、编写组件规则(role)

通过浏览以上基础工程,我们发现:

1、HelloWorld.java 接口

2、实现以上接口的类 DefaultHelloWorld.java

3、位于工程 project-root/src/main/resources/META-INF/Components 的组件描述文件components.xml,该文件以ROLE为定义关键字,注册到plexus容器中。类DefaultHelloWorld 是HelloWorld接口的实现。ROLE能作为在plexus查询具体实现的关键字。组件描述文件描述了我们的组件,稍后我们会详细说明。

4、当plexus容器启动时,容器通过META-INF/plexus下的组件描述文件加载组件

删除.java 文件 (under src/main and src/test ) ,为我们的演示工程-websiteMonitor,我们首先声明一个ROLE:

public interface WebsiteMonitor {


    /**

     * Role used to register component implementations with the container.

     */

    String ROLE = WebsiteMonitor.class.getName ();



    /**

     * Monitor the specified website.

     *

     * @param website

     *            Website URL to monitor

     * @throws Exception

     *             error encountered while performing the monitoring request.

     */

    public void monitor(String website) throws Exception;

}

创建其实现类:

public class DefaultWebsiteMonitor implements WebsiteMonitor {


    /*

     * (non-Javadoc)

     *

     * @see org.codehaus.plexus.tutorial.WebsiteMonitor#monitor(java.lang.String)

     */

    public void monitor(String website) throws Exception {

    // TODO implement


    }


}

创建组件描述文件:

路径: project-root/src/main/resources/META-INF/plexus/component.xml

<component-set>

  <components>

    <component>

      <role>org.codehaus.plexus.tutorial.WebsiteMonitor</role>

      <implementation>

        org.codehaus.plexus.tutorial.DefaultWebsiteMonitor

      </implementation>

      <configuration/>

    </component>

  </components>

</component-set>

pom中引入httpclient jar(略)