一、创建骨架
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(略)
转载于:https://blog.51cto.com/dlyss/1639897