网站域名的密码,做网站地图,做网站可以用别人的源码吗,做网站登入见面流程
首先#xff0c; 你需要创建一个Maven项目#xff0c;推荐用idea 创建项目 会自动配置插件 pom.xml文件中添加以下配置#xff1a;
project !-- 项目的基本信息 -- groupIdcom.example/groupId artifactIdmy-maven-plugi…流程
首先 你需要创建一个Maven项目推荐用idea 创建项目 会自动配置插件 pom.xml文件中添加以下配置
project !-- 项目的基本信息 -- groupIdcom.example/groupId artifactIdmy-maven-plugin/artifactId version1.0.0/version packagingmaven-plugin/packaging !-- 项目的依赖 -- dependencies dependency groupIdorg.apache.maven/groupId artifactIdmaven-plugin-api/artifactId version3.9.5/version /dependencydependencygroupIdorg.apache.maven.plugin-tools/groupIdartifactIdmaven-plugin-annotations/artifactIdversion3.2/versionscopeprovided/scope/dependency/dependencies!-- 插件的配置 -- build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-plugin-plugin/artifactId version3.10.2/version configuration !-- 插件的目标类 -- skipErrorNoDescriptorsFoundtrue/skipErrorNoDescriptorsFound/configuration executions execution idmojo-descriptor/id goals goaldescriptor/goal /goals /execution /executions /plugin /plugins /build
/project老版本的依赖
projectmodelVersion4.0.0/modelVersiongroupIdcom.example/groupId artifactIdmy-maven-plugin/artifactIdpackagingmaven-plugin/packagingversion1.0.0/versionnameuntitled1 Maven Mojo/nameurlhttp://maven.apache.org/urldependencies!-- 老版本的依赖方式 --dependencygroupIdorg.apache.maven/groupIdartifactIdmaven-plugin-api/artifactIdversion2.0/version/dependencydependencygroupIdorg.apache.maven.plugin-tools/groupIdartifactIdmaven-plugin-annotations/artifactIdversion3.2/versionscopeprovided/scope/dependency!-- 老版本的依赖方式 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion3.8.1/versionscopetest/scope/dependency/dependencies!-- 插件的配置 --buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-plugin-plugin/artifactIdversion3.2/versionconfiguration!-- 插件的目标类 --skipErrorNoDescriptorsFoundtrue/skipErrorNoDescriptorsFound/configurationexecutionsexecutionidmojo-descriptor/idgoalsgoaldescriptor/goal/goals/execution/executions/plugin/plugins/build
/project
接下来你需要创建一个实现了Mojo接口的Java类。Mojo是Maven Old Java Object的缩写代表一个Maven插件的目标goal。在这个类中你可以定义插件的具体行为。以下是一个简单的示例
package com.example; import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter; import java.util.List; Mojo(name my-goal, defaultPhase LifecyclePhase.PACKAGE)
public class MyMojo extends AbstractMojo { Parameter(property message, defaultValue Hello, World!) private String message; Parameter(property names) private ListString names; Override public void execute() throws MojoExecutionException { getLog().info(message); for (String name : names) { getLog().info(Name: name); } }
}在这个示例中我们创建了一个名为MyMojo的类并使用Mojo注解来指定插件的目标名称为my-goal以及默认的生命周期阶段为PACKAGE。我们还定义了两个参数message和names分别使用Parameter注解进行配置。在execute()方法中我们简单地打印了这些参数的值。现在你可以构建并安装你的Maven插件。在命令行中导航到项目的根目录并执行以下命令
mvn clean install这将编译并打包你的插件并将其安装到本地Maven仓库中。一旦安装完成你就可以在其他Maven项目中使用你的插件了。以下是一个使用示例在另一个Maven项目的pom.xml文件中添加以下配置
project !-- 项目的其他配置 -- build plugins plugin groupIdcom.example/groupId artifactIdmy-maven-plugin/artifactId version1.0.0/version configuration messageHello from my plugin!/message names nameAlice/name nameBob/name nameCharlie/name /names /configuration executions execution goals goalmy-goal/goal !-- 指定插件的目标 -- /goals /execution /executions /plugin /plugins /build
/projectideal 运行配置这个插件 command line com.example:my-maven-plugin:1.0.0:my-goal 命令行太长我们可以通过 增加 goalPrefix 属性来修改命令前缀具体做法如下
修改原有的 MyMojo
Mojo(name my-goal, defaultPhase LifecyclePhase.PACKAGE)
public class MyMojo extends AbstractMojo {Parameter(property goalPrefix, defaultValue my-prefix)private String goalPrefix;Parameter(property message, defaultValue Hello, World!)private String message;Parameter(property names)private ListString names;Overridepublic void execute() throws MojoExecutionException {getLog().info(message);for (String name : names) {getLog().info(Name: name);}}
}
修改 my-maven-plugin 插件pom.xml文件增加goalPrefix
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd... !-- 插件的配置 --buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-plugin-plugin/artifactIdversion3.10.2/versionconfiguration!-- 插件的目标类 --skipErrorNoDescriptorsFoundtrue/skipErrorNoDescriptorsFoundgoalPrefixmy-prefix/goalPrefix/configurationexecutionsexecutionidmojo-descriptor/idgoalsgoaldescriptor/goal/goals/execution/executions/plugin/plugins/build
/project重新打包然后在引用项目中 通过ideal 修改如下运行配置
my-prefix:my-goal 对应的maven 命令行
mvn my-prefix:my-goal