Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用maven原型插件创建项目?什么是人工制品等?_Maven_Maven 2_Maven 3_Maven Plugin_Maven Archetype - Fatal编程技术网

如何使用maven原型插件创建项目?什么是人工制品等?

如何使用maven原型插件创建项目?什么是人工制品等?,maven,maven-2,maven-3,maven-plugin,maven-archetype,Maven,Maven 2,Maven 3,Maven Plugin,Maven Archetype,我是Maven的新手,使用Maven.apache.org作为介绍 在本教程的“如何创建我的第一个Maven项目?”部分中,它教导我们通过执行以下命令来生成Maven原型项目: mvn archetype:generate Maven下载了许多工件后,它突然停止,并在命令行上问了以下问题: Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 149: Apache教程

我是Maven的新手,使用Maven.apache.org作为介绍

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

mvn archetype:generate
Maven下载了许多工件后,它突然停止,并在命令行上问了以下问题:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 149:
Apache教程没有描述此提示

我有两个问题:

1.上面的问题是什么?应该如何回答,以使
mvn原型:generate
过程继续

2.按照惯例,人们是否使用
mvn原型: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': :
...

如何定义它们?

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


回答你的另一个问题:是的,使用原型是建立新项目的常用方法。主要是因为各种项目/模块都有很多原型。一旦你知道你想要哪个原型,使用它来引导一个项目是最简单的开始方式。

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

Define value for property 'package':  : :
Define value for property 'groupId': : 
Define value for property 'artifactId': :
...
  • 下载maven原型插件的最新版本
  • 列出可用于从中创建项目的所有原型。如果在调用命令时定义了原型,maven将跳到步骤4
  • 默认情况下,maven选择maven archetype quickstartarchetype,它基本上创建了一个带有源类和测试类的maven Hello World项目。如果要创建简单的项目,只需按enter键即可继续。如果要创建特定类型的应用程序,应找到符合需要的原型并输入该原型的编号,然后按enter键。例如,如果你想创建一个webapp项目,你可以输入153(这是这个原型的当前数字,可以随时更改。)
  • 因为原型是模板,它们打算反映当前的最佳实践,所以它们可以随着时间的推移而发展,因此它们有自己的版本。Maven将询问您希望使用哪一版本的原型。默认情况下,maven为您选择最新版本。因此,如果您同意使用最新版本的原型,只需在此步骤中按Enter键
  • 每个maven项目(和模块)都有其groupId、artifactId和版本。Maven将分三步向您询问这些问题。groupId:这在组织或项目中通常是唯一的。artifactId:artifactId通常是项目的名称。版本:这是命名拼图的最后一块。()
  • 最后,maven将询问代码的包结构。最佳做法是创建反映groupId的文件夹结构,因此Maven将其设置为默认值,但您可以自由更改
  • 输入这些信息后,Maven将显示您输入的所有信息,并要求您验证项目创建。如果按Y键,然后按enter键,您的项目将使用您选择的工件和设置创建


    您还可以阅读的使用网站。

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

    第一个问题:按回车键,然后你接受了原型插件的建议并选择#149。这个原型存在于不同的版本中,通常情况下,正如Chris所说,选择最新版本是可以的——这里是1.1


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

    你也可以使用缩写形式

    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>
    
    org.example.group
    
    更多

    @Chris,请查看我帖子中的更新,我按了回车键,但得到了奇怪的输出。它们是什么?这些是存储库中可用的原型版本。除非您另有令人信服的理由,否则您应该只使用最新版本(因此在本例中为1.1版),您可以使用
    ineractiveMode=false
    开关关闭所有提示。尝试mvn原型:generate-DgroupId=com.mycompany-DartifactId=someProject-DinteractiveMode=false
    。希望有帮助。