java - Maven 如何理解版本 :prepare command?

标签 java maven maven-release-plugin

我正在尝试创建一个插件,它可以从 Maven 中心下载并安装 jar 作为系统工具。所以我希望我的线路是这样的

mvn install-plugin:install org.chaschev:cap4j:1.0

与 Ruby 类似

gem 安装 capistrano

该插件将收集有关从 JAR 创建的快捷方式所需的所有信息。 IE。这个 jar 将包含一个实现安装接口(interface)的类。

Maven 如何理解为了执行像 release:prepare 这样的命令,它需要下载发布插件并运行它?有更好/其他的方法来做到这一点吗?

最佳答案

你的意思是命令行中的插件/目标和插件实现之间的关系是如何定义的?那么答案就是plugin.xml 。请参阅plugin.xml以获取发布插件,例如maven-release-plugin-2.0.jar:

<goalPrefix>release</goalPrefix>
...
  <mojos>
    <mojo>
      <goal>help</goal>
      ...
    <mojo>
      <goal>prepare</goal>
      ...

或者你的意思是,Maven 如何发现哪些插件可用?那么答案就是:

  • 有两个默认组可以搜索插件,org.apache.maven.pluginsorg.codehaus.mojo
  • 对于您自己的插件,您可能需要使用名称 ${prefix}-maven-plugin ,例如cap4j-maven-plugin
  • 您可以保留您的名字cap4j ,然后将插件描述放入 POM 的 <plugins>
  • 如果您希望您的构建在其他机器上运行,它们应该指向 <pluginRepositories>在 POM 或 settings.xml 中添加到您的插件存储库

关于java - Maven 如何理解版本 :prepare command?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19079385/

相关文章:

Java 排序抛出 java.lang.IllegalArgumentException : Comparison method violates its general contract

java - 复合对象中的父子关系?

java - 反射特殊行为的 Class.getDeclaredMethods()

java - Maven组装插件添加依赖项

java - 什么是初始化所有这些的更干净、更优雅的方法?

java.lang.NoClassDefFoundError : com/fasterxml/jackson/core/util/DefaultIndenter

java - 带有 Elasticsearch 的Spring Boot导致java.lang.NoSuchFieldError : IGNORE_DEPRECATIONS

java - Maven Release Plugin 不更新 dependencyManagement 中的 SNAPSHOT

maven-2 - 在 Maven 项目中,如何自动更新所有子模块以及父模块的版本?

java - 使用 Maven Relelase 插件准备发布阶段出错