2011-11-19 20 views
40

我是Maven新手,正在使用maven.apache.orgtutorial here作为介绍。如何使用maven-archetype-plugin创建项目?什么是artefactId等?

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

mvn archetype:generate 

后Maven的下载很多文物,它突然停下来问以下问题在命令行上:

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

Apache的教程不描述这个提示。

我有两个问题:

什么是上面要求的问题?应如何回答以使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

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

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

+0

@克里斯,请检查我的更新在我的帖子,我按下输入,但得到了奇怪的输出。他们是什么? – Mellon

+0

这些是版本库中可用的原型的版本。除非你有其他的令人信服的理由,否则你应该使用最新版本(在这种情况下,版本为1.1) – Chris

+3

您可以使用'ineractiveMode = false'开关关闭所有提示。尝试'mvn archetype:生成-DgroupId = com.mycompany -DartifactId = someProject -DinteractiveMode = false'。希望有所帮助。 –

39

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

  1. 下载maven-archetype-plugin的最新版本。
  2. 列出可用于从中创建项目的所有原型。如果您在调用该命令时定义了原型,则maven跳转到第4步。
  3. 默认情况下,maven选择maven-archetype-quickstart原型基本上创建一个maven Hello World项目与源和测试类。如果你想创建一个简单的项目,你可以按回车继续。如果你想创建一个特定类型的应用程序,你应该找到与你的需求相匹配的原型并输入该原型的编号,然后按回车键。例如。如果你想创建一个webapp项目,你可以输入153(这是这个原型的当前编号,它可以及时更改)。
  4. 由于原型是模板,它们打算反映当前的最佳实践,它们可以演化为时间,因此他们有自己的版本。 Maven会问你想使用哪个版本的原型。默认情况下,maven为你选择最新版本。所以如果您同意使用最新版本的原型,只需在此步骤按Enter即可;
  5. 每个maven项目(和模块)都有其groupId,artifactId和版本。然后,Maven将通过三个步骤向你提出这些问题。 groupId:这在组织或项目中通常是独一无二的。 artifactId:artifactId通常是项目已知的名称。版本:这是命名拼图的最后一块。(read more
  6. 最后,maven会问你代码的包结构。最佳做法是创建反映groupId的文件夹结构,因此Maven将其设置为默认值,但您可以自由更改此设置。

输入这些信息后,Maven会向您显示您输入的所有信息并要求您验证项目创建。如果您按Y然后输入,那么您的项目将使用您选择的工件和设置创建。

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

1

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

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

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

0

您也可以使用简写形式

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

甚至只有一组:

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

您将获得以下神器(在第一种情况下),如果它在任何配置的目录存在:

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

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

咨询maven website了解更多!

相关问题