自定义maven插件 Hello, mojo.

2023-10-27


pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.go</groupId>
    <artifactId>plugin_demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>maven-plugin</packaging>


    <dependencies>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>3.0</version>
        </dependency>

        <!-- dependencies to annotations -->
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-annotations</artifactId>
            <version>3.4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>


</project>

GreetingMojo.java

package cn.go;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo;

@Mojo(name = "go")
public class GreetingMojo extends AbstractMojo {
    public void execute() throws MojoExecutionException {
        getLog().info("Hello, mojo.");
    }
}

运行 install

在这里插入图片描述

install 报错

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:3.2:descriptor (default-descriptor) on project plugin_demo: Execution default-descriptor of goal org.apache.maven.plugins:maven-plugin-plugin:3.2:descriptor failed: Plugin org.apache.maven.plugins:maven-plugin-plugin:3.2 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.apache.maven.plugin-tools:maven-plugin-tools-annotations:jar:3.2, org.apache.maven.plugin-tools:maven-plugin-tools-api:jar:3.2, org.apache.maven.plugin-tools:maven-plugin-tools-generators:jar:3.2, org.apache.maven.plugin-tools:maven-plugin-tools-java:jar:3.2, org.apache.maven.plugin-tools:maven-plugin-tools-beanshell:jar:3.2, org.apache.maven.plugin-tools:maven-plugin-tools-model:jar:3.2: Failure to find org.apache.maven.plugin-tools:maven-plugin-tools-annotations:jar:3.2 in http://10.129.2.106:8081/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of nexus-private has elapsed or updates are forced -> [Help 1]

  • 错误原因是 ,构建时缺失依赖

在这里插入图片描述

  • 上图是一个构建的标准生命周期,报错的阶段是图中圈出的节点;
  • 解决方法(2个方法任意一个都行,不是两个步骤):

配置代理

<proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
	
	
	 <!-- <proxy> -->
        <!-- id 代理的名称(随便设) -->
        <!-- <id>optional</id> -->
        <!-- true 表示生效 -->
        <!-- <active>true</active> -->
        <!-- 协议 -->
        <!-- <protocol>http</protocol> -->
        <!-- 本机上网用户名及密码,如果没有,请注释或者是删除 -->
        <!-- <username>*******.ex</username> -->
        <!-- <password>a*169646</password> -->
        <!-- 公司上网使用ip及端口,即代理,这里替换成相对应的ip和端口 -->
        <!-- <host>127.0.0.1</host> -->
        <!-- <port>8888</port> -->
        <!-- 填写不用代理的地址,以竖线|分割多个地址,一般填写本地Maven仓库地址 -->
        <!-- <nonProxyHosts>local.net</nonProxyHosts> -->
    <!-- </proxy> -->
	
	 <proxy>
        <id>optional</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>127.0.0.1</host>
        <port>8888</port>
        <nonProxyHosts>local.net</nonProxyHosts>
    </proxy>
  </proxies>

pom.xml 中添加配置

<build>
        <plugins>
            <plugin>
                <groupId>cn.go</groupId>
                <artifactId>plugin_demo</artifactId>
                <version>1.0-SNAPSHOT</version>
            </plugin>
        </plugins>
    </build>
  • 刷新项目,可以看到如下效果:

在这里插入图片描述

  • 运行 goal mvn cn.go:plugin_demo:1.0-SNAPSHOT:go ;效果如图:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义maven插件 Hello, mojo. 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其

随机推荐

  • 结构化查询语言之 SQL 视图定义(以 MySQL 为例)

    文章目录 1 视图介绍 2 视图定义 3 视图更新 查询使用的数据库文件下载 1 视图介绍 虚关系 并不预先计算并存储关系 而是在使用虚关系时才通过执行查询被计算出来 概念上包含查询的结果 任何不是逻辑模型的一部分 但作为虚关系对用户可见的
  • 中国1949至2019年的gdp图表_成都市1949至2019年,70年来历年GDP数据信息公布

    新中国成立时至此已经整整70年了 在这70年里成都市的经济发展可谓是非常亮眼 最近成都市发布的 成都市统计年鉴2019 受到了不少人的关注 其中最受关注的还是成都历年地区生产总值 也就是我们常说的GDP 具体名单见文末 在 成都统计年鉴20
  • Java中方法的学习

    目录 Java中的方法定义 设计方法的原则 方法的命名规则 代码实现 方法调用 方法的重载 方法学习不知死过多少次 还让我学是吧 你没完了哈 来 来 来 咱们一起来分析 老师 前面的关键字我讲过吧 数据类型还用说嘛 方法的定义格式我说过吧
  • 2023推免夏令营末班车

    南航 清华大学预推免全面开放 目录 曲阜师范大学 活动内容 哈工大预推免 学校 学院 网址 ddl result schedule 河海大学 人工智能与自动化学院 河海大学人工智能与自动化学院2023年全国优秀大学生夏令营活动有关安排的通知
  • React Hooks 入门下

    前面的话 上篇介绍了 useState 和 useEffect 两个钩子函数 这篇将接着介绍其他常用的钩子函数 1 useCallback 作用 该 hooks 返回一个 memoized 回调函数 根据依赖项来决定是否更新函数 其依赖项可
  • VsCode写Python代码!这代码简直和大神一样规范!太漂亮了!

    VsCode虽然没有Pycharm的功能齐全 但是也是有他的独特之处 今天就让大家见识一下 用VsCode写出的代码是怎么样的吧
  • 【Shell编程】Shell中Bash变量-位置参数变量

    目录 系列文章 位置参数变量 实例 理解参数 实例 剩余参数 实例 区别整体对待和单独对待 系列文章 Shell编程 Shell基本概述与脚本执行方式 Shell编程 Shell中Bash基本功能 Shell编程 Bash变量 用户自定义变
  • Linux驱动开发(十六)---块设备驱动

    前文回顾 Linux驱动开发 一 环境搭建与hello world Linux驱动开发 二 驱动与设备的分离设计 Linux驱动开发 三 设备树 Linux驱动开发 四 树莓派内核编译 Linux驱动开发 五 树莓派设备树配合驱动开发 Li
  • 算法(1) MST - 最小生成树

    最小生成树 算法 概念 生成树 如果连通网G的一个子图是一棵包含G的所有顶点的树 则该子图称为G的生成树 最小生成树 在连通网G的所有生成树中 所有边的代价和最小的生成树 称为最小生成树 Kruskal 算法 又称为加边法 将边排序后从小到
  • 清除css的display属性

    今天在项目中遇到了一个要清除display属性的问题 整了半天才搞好 给大家分享一下 var b obj attr id var a document getElementsByName b for var i 0 i
  • Spring Cloud Ribbon的使用详解

    目录 一 概述 1 Ribbon是什么 2 Ribbon能干什么 3 Ribbon现状 4 未来替代方案 5 架构说明 二 RestTemplate 用法详解 三 Ribbon核心组件IRule 四 实战项目 1 回顾之前的项目 2 Rib
  • win7右键打开方式添加应用程序无法设置

    针对某些绿色软件包 当我们移动软件包的位置时 再次设置默认打开方式会出现无法设置的情况 如下图 选择要设置的文件 gt 右击 gt 打开方式 gt 选择默认程序 浏览选择默认打开方式的应用 点击打开设置默认程序 结果是打开方式中并没有Not
  • 【点击按钮 复制文本】实现点击按钮复制文本内容(vue和uniapp两种方式实现)

    一 Vue使用clipboard实现点击按钮复制文本内容 1 安装clipboard js npm install clipboard save 2 具体代码 div class copybox 复制 div
  • Redis高并发缓存架构实战

    示例代码 Service public class ProductService Autowired private ProductDao productDao Autowired private RedisUtil redisUtil A
  • 拉勾教育

    开篇词 开篇词 Java 性能优化 是进阶高级架构师的炼金石 你好 我是李国 作为 Java 性能优化与面试 21 讲 这个课程的作者 我先来简单介绍下自己 我曾任京东金融 陌陌科技高级架构师 工作期间 我接触的都是比较底层的中间件和操作系
  • Redis学习笔记7:Redis持久化-RDB、AOF

    一 什么是RDB 1 Redis DataBase 在指定的时间间隔内将内存中的数据集快照写入磁盘 也就是行话讲的Snapshot快照 它恢复时是将快照文件直接读到内存里 Redis会单独创建 fork 一个子进程来进行持久化 会先将数据写
  • 软件测试经验分享

    软件测试 一个熟悉又略显陌生的词汇 不同人对软件测试有不同的理解 如果把软件比作一片辽阔的区域 地形复杂 设置有许多个目的地 每个目的地都有多条道路可以到达 每条道路上都可能埋藏了威力不一的地雷 测试人员的职责就是在用户进入这片区域之前 试
  • BroadcastChannel:weex跨页面通信

    场景如下 一个列表页面用于展示所有未完成的作业 点击列表的某一项 会跳转到该项作业的详细信息界面 可以在这里将作业标记为已完成 一旦标记后 列表中就不应该再存在此作业了 在这里 列表相当于一个主页面 详细信息界面是子页面 主界面浏览到第10
  • 如何使用Java反射机制获取类的所有构造函数呢?

    转自 如何使用Java反射机制获取类的所有构造函数呢 下文讲述使用Java反射获取一个类的所有构造方法分享 如下所示 实现思路 1 forName 获取指定的Class对象 2 getConstructors 可返回一个构造函数对象数组 例
  • 自定义maven插件 Hello, mojo.

    文章目录 pom xml GreetingMojo java 运行 install install 报错 配置代理 pom xml 中添加配置 参考文档 https maven apache org guides plugin guide