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

我是Maven的新手,并且正在使用maven.apache.org 教程作为介绍。

在本教程的“ 如何创build我的第一个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来创build一个Maven项目?

————–更新———————

关于我的第一个问题,我没有input任何值就按下“enter”键,并得到如下输出:

 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: 

那是什么?

我在上面的例子中input“1”,然后我得到以下的东西:

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

我怎样才能定义它们?

mvn archetype:generate命令用于从现有模板创build项目。 有许多开发人员和项目组定义了几种原型。 当你运行这个命令时,maven会做以下事情:

  1. 下载maven-archetype-plugin的最新版本。
  2. 列出可用于从中创build项目的所有原型。 如果你在调用命令的时候定义了一个原型,maven跳转到第4步。
  3. 默认情况下,mavenselectmaven-archetype-quickstart原型,该原型基本上创build了一个Maven Hello World项目,其中包含源代码和testing类。 如果你想创build一个简单的项目,你可以按回车继续。 如果你想创build一个特定types的应用程序,你应该find与你的需求相匹配的原型并input该原型的编号,然后按回车键。 例如,如果你想创build一个webapp项目,你可以input153(这是这个原型的当前编号,它可以及时更改)。
  4. 由于原型是模板,他们打算反映当前的最佳实践,他们可以及时演变,因此他们有自己的版本。 Maven会问你要使用哪个版本的原型。 默认情况下,maven为你select最新版本。 所以如果你同意使用最新版本的原型,只需在这一步按回车;
  5. 每个maven项目(和模块)都有其groupId,artifactId和版本。 然后,Maven将分三步向你提问。 groupId:这在组织或项目中通常是唯一的。 artifactId:artifactId通常是项目所知的名称。 版本:这是命名之谜的最后一部分( 阅读更多 )
  6. 最后,maven会问你代码的包结构。 最佳做法是创build反映groupId的文件夹结构,因此Maven将其设置为默认值,但您可以自由更改。

input这些信息后,Maven会向您显示您input的所有信息,并要求您validation项目创build。 如果您按Y键然后input,那么您的项目就是使用您select的工件和设置创build的。

你也可以阅读maven-archetype-plugin的使用网站。

它是问你要使用哪种原型来种植你的项目。 如果在该提示下按“enter”,它会给你一个可用选项列表。 你可以使用maven-archetype-quickstart来创build一个简单的项目(在这种情况下,它可能会提示你select一个仓库,在这种情况下,只需input与input之后列出的第一个仓库相对应的编号)。

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

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

第一个问题:按回车,然后你接受原型插件的build议,并select#149。这个原型退出不同的版本,通常,如克里斯说,可以select最新的 – 这里1.1。

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

你也可以使用简写forms

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

甚至只有一个组:

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

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

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

或者如果有多个候选人,你会得到多个build议。 所以你必须通过input在select列表中显示的索引来select它们。

请向maven 网站咨询更多!