为什么pom文件中我的一个依赖项的maven坐标随新项目的maven坐标而改变

t3irkdon  于 2021-11-09  发布在  Java
关注(0)|答案(1)|浏览(386)

我已经从一个项目中创建了一个maven原型,在这个项目的pom文件中,有一个依赖demo admin

<dependency>
    <groupId>com.demo</groupId>
    <artifactId>demo-admin</artifactId>
    <version>${demo-admin.version}</version>
</dependency>

此依赖关系安装在本地存储库中。
但是,当我检查生成的原型文件,即archetype resources文件夹中的pom.xml文件时,依赖关系如下所示

<dependency>
    <groupId>${groupId}</groupId>
    <artifactId>${rootArtifactId}-admin</artifactId>
    <version>${version}</version>
</dependency>

所以每次我从原型创建一个新项目,这个独立性的maven坐标都会改变。
有人有同样的问题吗?
编辑:本期可按以下步骤复制:
创建一个gav如下的项目

<groupId>com.demo</groupId>
    <artifactId>abc-admin</artifactId>
    <version>1.0.0</version>

创建一个gav如下的项目

<groupId>com.demo</groupId>
    <artifactId>abc</artifactId>
    <version>1.0.0</version>

第二个项目包含一个依赖项

<dependency>
    <groupId>com.demo</groupId>
    <artifactId>demo-admin</artifactId>
    <version>1.0.0</version>
</dependency>

使用下面的命令从第二个项目创建原型。cd b。mvn清洁c。mvn公司archetype:create-from-project
转到“/target/generated sources/archetype/src/main/resources/archetype resources”文件夹,可以看到一个pom文件,在pom文件中,依赖关系如下所示

<dependency>
    <groupId>${groupId}</groupId>
    <artifactId>${rootArtifactId}-admin</artifactId>
    <version>${version}</version>
</dependency>

因此,如果我基于原型创建一个新项目,当我输入不同的gav时,依赖关系也会根据输入值改变

xkftehaa

xkftehaa1#

我猜这是用占位符自动替换演示项目的groupid和artifactid。
要么给演示项目提供一些在其他任何地方都不会出现的名称,要么用正确的值替换占位符来编辑生成的原型。

相关问题