Maven项目由Old(1.x)Archetype创建

时间:2011-06-22 08:48:13

标签: java maven maven-3 maven-archetype

我正在尝试按照Getting Started Guide来学习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: ...

如何使用Archetype的当前版本?我读的指南过时了吗?

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

是否有更好的指南或书籍可供您推荐?

2 个答案:

答案 0 :(得分:4)

您使用的版本以及您所指的指南是最新的。您可以忽略该消息。创建的项目可以与最新的maven一起使用。

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

除了您正在查看的内容之外,您还可以查看Maven: The Complete Reference

答案 1 :(得分:0)

如果在mvn archetype:generate命令中包含 -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进行单元测试的测试范围。要使用该原型,您只需要指定archetypeGroupId和archetypeArtifactId,如下所示:

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之外的原型版本,您只需要为 archetypeVersion 属性定义一个值,例如

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

使用网络浏览器访问http://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/,了解可用的版本。