当前位置: 首页 > 知识库问答 >
问题:

Maven版本-maven-plugin版本plugin2.2--Maven叔叔情况

丁弘新
2023-03-14

Maven是3.1.0。

<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>

    <artifactId>tools-parent</artifactId>
    <version>0.0.7-SNAPSHOT</version>
    <packaging>pom</packaging>

    <description>
        Infrastructure related to the &quot;vapp&quot; and
        &quot;deployer&quot; utilities.
    </description>

    <parent>
        <groupId>com.company.product</groupId>
        <artifactId>deploy-parent</artifactId>
        <version>0.0.6-SNAPSHOT</version>
    </parent>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-plugin</artifactId>
                <version>1.9.4</version>
                <configuration>
                    <connectionType>connection</connectionType>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <!-- Make sure that only non-snapshot versions are used for the dependencies. Only active when property 'snapshotDependencyAllowed' is false. -->
                        <id>enforce-no-snapshots</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <skip>${snapshotDependencyAllowed}</skip>
                            <rules>
                                <requireReleaseDeps>
                                    <message>No Snapshots Allowed!</message>
                                </requireReleaseDeps>
                                <requireReleaseVersion>
                                    <message>No Snapshots Allowed!</message>
                                </requireReleaseVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
[INFO] ------------------------------------------------------------------------
[INFO] Building tools-parent 0.0.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:set (default-cli) @ tools-parent ---
[INFO] Searching for local aggregator root...
[INFO] Local aggregation root: /user/home/u100123/giga/tools
[INFO] Processing change of com.company.product:tools-parent:0.0.7-SNAPSHOT -> 0.0.7
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] tools-parent .................................... FAILURE [1.093s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.404s
[INFO] Finished at: Fri May 01 20:44:22 GMT-00:00 2015
[INFO] Final Memory: 12M/246M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:versions-maven-plugin:2.2:set (default-cli) on project tools-parent: Execution default-cli of goal org.codehaus.mojo:versions-maven-plugin:2.2:set failed. NullPointerException -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
  1. 2.2失败的原因是什么?如何解决这个问题?

共有1个答案

慕容玉书
2023-03-14

好像是什么虫子。

html" target="_blank">解决方案:1。我还必须在...部分之外添加 com.company.product 属性,即对于tools-parent,现在version-maven-plugin:2.2工作正常,即我添加了顶部的行(如下所示)。唯一的问题是,那么parent节有什么用(除了继承deploy-parent的主代码外,还继承了tools-parent项目)。为什么groupId需要被定义为artifactId工具的父部分的输出-parent当它已经在版本的父部分中时-maven-plugin:2.2才能成功工作。

最重要的是:只有当pom.xml for a project/module有 节,而父节的artifactId不是项目本身的父节时(典型的-Maven叔叔情况),即如果tools-parent工件是在另一个模块的父节中定义的(比方说tools-child),那么版本2.2将成功工作。但是,如果tools-child的父节不包含作为“tools-parent”的artifactId,并且对于ex:deploy-parent/some-diversity-project-artifact(它驻留在源代码管理工具中的不同项目中)来说,则对于tools-child artifactId,我们也需要在父节之外设置groupId值(即使父节artifactId的groupId与tools-child的groupId相同/不同)。

<groupId>com.company.product</groupId>
<artifactId>tools-parent</artifactId>
<version>0.0.7-SNAPSHOT</version>
<packaging>pom</packaging>

<description>
    Infrastructure related to the &quot;vapp&quot; and
    &quot;deployer&quot; utilities.
</description>

<parent>
    <groupId>com.company.product</groupId>
    <artifactId>deploy-parent</artifactId>
    <version>0.0.6-SNAPSHOT</version>
</parent>

--或者

2.切换回版本-maven-plugin:2.1

 类似资料:
  • 我使用低于IDE使用的系统环境JAVA_HOME(1.8)启动NetBeans IDE12.0(14)。Maven执行的IDE输出窗口似乎显示项目是用JDK14的JAVA_HOME运行的,以这种方式运行项目文件。 但是exec-maven-plugin在 这似乎表明Maven在IDE中运行在1.8下,忽略了IDE自己的重写设置JAVA_HOME 14。它使用JAVA_HOME中设置的JDK,因为如

  • 在执行 命令时,我想尝试使用版本参数配置 参数。但我还没有找到一种方法来成功地做到这一点。 例如,如果我的主干中有一个版本为 1.0-SNAPSHOT 的项目,我想使用 选项创建一个分支,并在 branchName 中指定一个具有当前项目版本 (1.0-SNAPSHOT) 的 - 作为参数。 我已经尝试执行< code > mvn release:branch-DbranchName = VERS

  • 使用 use-lates-release 用于较新的版本(所有非快照),并用最新的版本替换POM的版本。我用 [anyVersionNumber] 在pom.xml中添加了依赖项(当前项目所依赖的)。 当我运行“MVN clean Package”时,生成失败,错误消息是无法解析项目的依赖项 :jar:0.1:无法找到工件 :jar:[anyVerionNumber] versions-maven

  • 所有POM都有作为它们的版本,也在dependencies标签下。它通过上传到Nexus repo。 我们最近开始做。因此,所有20个父POM现在都是和版本,因为它们都位于nexus中。所有标记现在都指向 开发人员不想指向发布版本。他们需要来自同行的edge开发版本,不管它是否不稳定。 SCM只希望指向版本,因为他必须每周执行一次,但由于指向快照版本而失败。 现在我知道了版本插件,但问题是,我应该

  • 问题内容: 我想执行的三个项目,我已经发布到我们的Nexus服务器 众多 ,在过去的时间。今天突然,由于没有明显的原因,所有发行版都没有执行目标。 启用(和)的完整堆栈跟踪和调试日志记录后,我看到数百行有关缺少包的错误: 但是,所有这些软件包都在我的本地存储库和Nexus服务器中。而且,我没有从那里得到任何这些错误,并且所有项目(Java Web应用程序)实际上都是从Intellij启动的,没有任

  • 我正在尝试使用Maven版本插件将所有子POM升级到父版本,并在父POM中执行所有子模块的构建。Pom文件如下所示 现在,如果我使用Eclipse中的命令在基本POM上运行Maven构建 子模块正在正确构建,但是如果我将base pom版本更新到2.0并使用版本插件命令 版本正在更新,但子模块尚未构建。只有基本pom得到构建。 我是否必须明确指定在某个阶段构建子模块?我错过了什么?。