Cookbook:如何从 Plexus Javadoc 标签升级到 Plexus Java 注解?
概括
这个秘籍描述了如何从 Plexus Javadoc 标签升级到 Plexus Java Annotations,分两步:
plexus-maven-plugin
将仅支持 Plexus Javadoc 标签的已弃用的 替换为其继任者:plexus-component-metadata
,后者同时支持 Plexus Javadoc 标签和 Plexus Java Annotations,- 使用Plexus的 Java 注释更新源。
注意:如果您的目标组件是 Maven 3.1.0+,使用JSR-330 注释而不是 Plexus Java 注释可能是一个不错的下一步
先决条件插件
以下是使用的插件列表:
插入 | 版本 |
---|---|
plexus-maven-plugin |
1.3.8 |
plexus-component-metadata |
1.7.1 |
等价表
丛行家插件 | 丛组件元数据 | |
---|---|---|
项目/插件信息 | 项目/插件信息 | |
最新的 | 1.3.8 | 1.7.1 |
阶段 | 过程源 | 进程类 |
目标 | descriptor |
generate-metadata |
merge-descriptors |
查看staticMetadataDirectory 参数 默认值: ${basedir}/src/main/resources/META-INF/plexus | |
test-descriptor |
generate-test-metadata | |
test-merge-descriptors |
查看testStaticMetadataDirectory 参数 默认值: ${basedir}/src/test/resources/META-INF/plexus | |
components-report |
报告功能不可用 | |
源注释 | javadoc 标签: @plexus.component , @plexus.requirement ,@plexus.configuration |
javadoc 标签 + plexus-component-annotations Java 5 注释: @Component , @Requirement , @Configuration , |
食谱
插件配置
在您的pom.xml
,替换plexus-maven-plugin
配置:
<project> <build> <plugins> <plugin> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-maven-plugin</artifactId> <version>1.3.8</version> <executions> <execution> <goals> <goal>descriptor</goal> </goals> </execution> </executions> </plugin> </build> </project>
有相应的plexus-component-metadata
配置:
<project> <build> <plugins> <plugin> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-component-metadata</artifactId> <version>1.7.1</version> <executions> <execution> <goals> <goal>generate-metadata</goal> </goals> </execution> </executions> </plugin> </build> </project>
如果merge-descriptors
使用,请将手写的 xml 文件移动到${basedir}/src/main/resources/META-INF/plexus
.
用 Plexus Java 5 注解替换 Plexus Javadoc 标签
在您的pom.xml
中,添加plexus-component-annotations
依赖项:
<project> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-component-annotations</artifactId> <version>1.7.1</version> </dependency> </dependencies> </project>
在您的 java 源代码中,替换 javadoc 标记:
/** * @plexus.component role="foo.MyComponent" role-hint="hint-value" */ public class MyComponentImplementation implements MyComponent { /** * @plexus.requirement */ private InjectedComponent; }
带有相应的 Java 5 注释
import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; @Component( role = MyComponent.class, hint = "hint-value" ) public class MyComponentImplementation implements MyComponent { @Requirement private InjectedComponent; }