如何使用maven-archetype-plugin创建项目?什么是artefactId等?

时间:2011-11-19 13:09:50

标签: maven maven-2 maven-3 maven-plugin maven-archetype

我是Maven的新手,我正在使用 maven.apache.org tutorial here作为介绍。

在本教程的“如何制作我的第一个Maven项目?”部分中,它教我们通过执行以下命令生成Maven原型项目:

mvn archetype:generate

在Maven下载了很多工件后,突然停止并在命令行上询问了以下问题

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 149:

Apache教程没有描述此提示。

我有两个问题:

1。上面要求的问题是什么?如何回答mvn archetype:generate过程继续进行?

2。传统上,人们是否使用mvn archetype:generate来创建Maven项目?

--------------更新---------------------

关于我的第一个问题,我在没有输入任何值的情况下按下“输入”并得到以下输出:

Choose version: 
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6: 
那是什么?

我在上面的情况下输入“1”,然后我得到了以下内容:

Define value for property 'package':  : :
Define value for property 'groupId': : 
Define value for property 'artifactId': :
...

我该如何定义它们?

4 个答案:

答案 0 :(得分:40)

mvn archetype:generate命令用于从现有模板创建项目。许多开发人员和项目组定义了几种原型。当您运行该命令时,maven会执行以下操作:

  1. 下载maven-archetype-plugin的最新版本。
  2. 列出可用于创建项目的所有原型。如果在调用命令时定义了原型,则maven跳转到步骤4。
  3. 默认情况下,maven选择 maven-archetype-quickstart 原型,它基本上创建了包含源和测试类的maven Hello World 项目。如果要创建一个简单的项目,只需按Enter键继续。如果要创建特定类型的应用程序,您应该找到符合您需要的原型并输入该原型的编号,然后按Enter键。例如。如果要创建webapp项目,可以输入153(这是此原型的当前编号,它可以及时更改。)
  4. 由于原型是模板,他们打算反映当前的最佳实践,因此它们可以及时发展,因此它们有自己的版本。 Maven会问你想要使用哪种版本的原型。默认情况下,maven会为您选择最新版本。因此,如果您同意使用最新版本的原型,只需在此步骤按Enter;
  5. 每个maven项目(和模块)都有groupId,artifactId和version。 Maven将分三步向您询问这些问题。 groupId:这在组织或项目中通常是唯一的。 artifactId:artifactId通常是项目所知的名称。 version:这是命名难题的最后一部分。(read more
  6. 最后,maven会问你代码的包结构。最佳做法是创建反映groupId的文件夹结构,因此Maven将其设置为默认值,但您可以自由更改此内容。
  7. 输入这些信息后,Maven将向您显示您输入的所有信息,并要求您验证项目创建。如果按Y然后输入,则使用您选择的工件和设置创建项目。

    您还可以阅读maven-archetype-plugin的使用网站。

答案 1 :(得分:4)

它询问您要使用哪种原型来为您的项目设定种子。如果您在该提示符下按“输入”,它将为您提供可用选项列表。您可以使用maven-archetype-quickstart创建一个简单的项目(在此之后它可能会提示您选择一个存储库,在这种情况下,只需输入与您输入后列出的第一个存储库对应的编号)。

回答你的另一个问题:是的,使用原型是设置新项目的常用方法。主要是因为有各种各样的项目/模块的原型。一旦你知道你想要哪种原型,用它来引导项目是最简单的入门方式。

答案 2 :(得分:1)

快速浏览一下教程,你省略了一些archetype:generate命令的参数。这就是为什么它不知道选择从哪个原型生成教程项目并向您展示所有可用的原型(149)。

第一个问题:按回车然后你接受了原型插件的建议并选择#149。这个原型退出不同的版本,通常,如Chris所说,可以选择最新的 - 这里1.1。

第二个问题:因为原型是一种可以为你节省大量工作的模板:是的,这很常见。但不是唯一的方法 - 你总是可以从空项目开始。

答案 3 :(得分:0)

您也可以使用简短形式

mvn archetype:generate -Dfilter=org.example.group:

甚至只是一个小组:

<groupId>org.example.group</groupId>
<artifactId>example-artifact</artifactId>

如果存在于任何已配置的目录中,您将获得以下工件(在第一种情况下):

\\MyMachineName\SharedFolder

如果有多个候选人,你会得到多个建议。因此,您必须通过输入选择列表中显示的索引来选择它们。

请咨询maven http://docs.scipy.org/doc/scipy/reference/sparse.html#usage-information了解更多信息!