博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“Maven官方用户入门指南”翻译之二
阅读量:4112 次
发布时间:2019-05-25

本文共 2167 字,大约阅读时间需要 7 分钟。

如何构建第一maven工程?

        我们现在开始创建第一个自己的maven工程!我们将使用maven的创建向导,构建第一个maven工程。原型定义为:一组事物所表现出来的共性。在maven中,原型是一个满足客户需求创建的maven工程模板。我们现在开始去了解创建向导的工作机制,如果你想了解更多关于原型相关的信息,请参看""

        继续创建第一个maven工程,执行如下命令将构建一个简单的maven工程:

 

mvn archetype:generate \  -DarchetypeGroupId=org.apache.maven.archetypes \  -DgroupId=com.mycompany.app \  -DartifactId=my-app

一旦执行上述命令,将会出现如下结果:一个名字为my-app的目录将被创建同时这个目录中包含一个pom.xml文件,此文件的内容如下:

 

 

4.0.0
com.mycompany.app
my-app
jar
1.0-SNAPSHOT
Maven Quick Start Archetype
http://maven.apache.org
junit
junit
3.8.1
test

pom.xml中包括了此项目的POM(项目对象模型)。POM是maven中的基本工作单元,这个很重要,因为maven所有过程的理解都依赖于此概念,总之POM包括工程中的一切重要信息,同时其他信息也都与之有关。POM很重要,初学者鼓励参看。

 

    这是一个非常简单的POM,但是他展示了POM包括的关键元素,我们一一讲述他们从而掌握POM要领:

    project:maven的pom.xml文件的根元素。

    modelVersion:POM采用的对象模型版本。

    groupId:项目组唯一标示,是项目的一个组分类。例如: org.apache.maven.plugins是maven的所有的plugin组id

    artifactId:此工程的唯一标示,首先工程最终将是一个jar文件,其次最终文件的名称中将包括artifactId,maven打包生成的最终文件名称格式为:<artifactId>-<version>.<extension> (如: myapp-1.0.jar).

    packaging:工程打包生成格式(如:jar,war,ear等等)。这不仅仅意味着一个jar,war或ear,同时他的特殊生命周期是作为构建过程中的一个部分出现的(生命周期的话题后面还会阐述,你现在只需要了解到他是整个构建周期中的一个部分就可以了)。packaging默认值为jar,因此有些工程可以不显示指定。

    version:工程生成文件的版本号,maven提供版本管理,你常常看到版本号中出现SNAPSHOT,他标示项目在开发阶段。后面我们还会讨论SNAPSHOT。

    name:项目工程名称。通常会在maven生成的api文档中出现。

    url:项目工程url地址。通常会在maven生成的api文档中出现。

    description:项目工程的基本描述。通常会在maven生成的api文档中出现。

 

    POM中的完整元素请参看参考,让我们回到项目中来,基于创建向导构建的工程生成的目录结构如下所示:

my-app|-- pom.xml`-- src    |-- main    |   `-- java    |       `-- com    |           `-- mycompany    |               `-- app    |                   `-- App.java    `-- test        `-- java            `-- com                `-- mycompany                    `-- app                        `-- AppTest.java

包括了一个pom文件,一个树形结构的应用源文件和测试源文件,这是一个标准的maven工程(应用源文件路径为: ${basedir}/src/main/java ,测试源文件路径为: ${basedir}/src/test/java, pom.xml路径为${basedir} )。

          手动创建的maven工程我们推荐此目录结构,这是maven的习惯,如果打算了解更多请参考""

          现在我们已经有了pom文件,应用源文件,单元测试源文件,有可能你又要问......

 

转载地址:http://giqsi.baihongyu.com/

你可能感兴趣的文章
实现只能动态分配或只能静态分配。
查看>>
STL删除迭代器
查看>>
比较器与类的成员函数(2019.10.22)
查看>>
树的确定与遍历
查看>>
红黑树的旋转
查看>>
快速排序优化
查看>>
allocator
查看>>
字符串匹配KMP算法
查看>>
TCP流量控制与拥塞控制
查看>>
指针数组
查看>>
大小端模式
查看>>
构造函数、析构函数 与抛出异常
查看>>
sizeof与strlen区别(2019.10.23)
查看>>
临界区
查看>>
构造函数、拷贝构造函数、赋值函数
查看>>
存储管理
查看>>
CSingleLock
查看>>
-128的补码
查看>>
索引查找
查看>>
堆排序建堆的时间复杂度
查看>>