从旧 (1.x) 原型创建的 Maven 项目

2022-09-04 22:28:31

我正在尝试按照此入门指南学习Maven。

我在Linux上有Apache Maven 3.0.1。我已发出以下命令来创建第一个项目:

yes | mvn archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DgroupId=org.obliquid.helpers \
  -DartifactId=obliquid-helpers \
  -Dversion=0.1

但是,在输出中,我读到:

[INFO] project created from Old (1.x) Archetype in dir: ...

如何为原型使用当前版本?我正在阅读的指南是否过时了?

作为一个子问题,我注意到在pom中.xml提到了junit版本3.8.1,而我想使用junit版本4.8.x - 如何改变它?我可以更改 XML 中的版本号吗?

有没有更好的指南或书籍可以推荐?


答案 1

您正在使用的版本以及您引用的指南已经足够最新了。您可以忽略该消息。创建的项目与最新的 maven 一起工作正常。

至于 junit,您可以相应地更改依赖项的版本。使用 archetype:generate 创建的项目只是一个指示性项目,旨在进行自定义。

除了您正在查看的内容之外,您还可以查看Maven:完整参考


答案 2

如果你在 mvn 原型:生成命令中包含 -DinteractiveMode=true

mvn archetype:generate \
    -DgroupId=org.obliquid.helpers \
    -DartifactId=obliquid-helpers \
    -Dversion=0.1 \
    -DinteractiveMode=true

您将看到可用mvn原型的(大型)目录,以及每个原型的简要描述。

目前,该列表中几个最好的简单Java应用程序原型是:

1844: remote -> org.spilth:java9-minimalist-quickstart

1966: remote -> pl.org.miki:java8-quickstart-archetype

第二个包括一个测试范围,该范围使用 JUnit 4.11 版进行单元测试。要使用该原型,您只需指定原型GroupId和原型ArtifactId,如:

mvn archetype:generate \
    -DarchetypeGroupId=pl.org.miki \
    -DarchetypeArtifactId=java8-quickstart-archetype \
    -DgroupId=org.obliquid.helpers \
    -DartifactId=obliquid-helpers \
    -Dversion=0.1

出于某种原因,mvn archetype:generate 假设 archetypeVersion=1.0,即使原型元数据指示最新版本/发行版的不同版本也是如此。

要指定 1.0 以外的原型版本,您只需为原型版本属性定义一个值,例如

mvn archetype:generate \
    -DarchetypeGroupId=org.apache.maven.archetypes \
    -DarchetypeArtifactId=maven-archetype-quickstart \
    -DarchetypeVersion=1.1 \
    -DgroupId=org.obliquid.helpers \
    -DartifactId=obliquid-helpers \
    -Dversion=0.1 \
    -DinteractiveMode=true

通过 Web 浏览器访问 https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/,了解可用的版本。


推荐