“Maven官方用户入门指南”翻译之二
如何构建第一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文件,此文件的内容如下:
?
?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Maven Quick Start Archetype</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>
pom.xml中包括了此项目的POM(项目对象模型)。POM是maven中的基本工作单元,这个很重要,因为maven所有过程的理解都依赖于此概念,总之POM包括工程中的一切重要信息,同时其他信息也都与之有关。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中的完整元素请参看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文件,应用源文件,单元测试源文件,有可能你又要问......
?