Words definitions
POM: **P**roject **O**bject **M**odel
How to build a simple project with Maven
- Download and Install Maven
从 http://maven.apache.org/download.html 下载,然后把解压出的bin目录添加到环境变量中,测试mvn -version显示正常即完成安装。 - The very first time to download artifacts with mvn
On your command line, execute the following Maven goal:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
It will takes some time on the first run. When running has done, a directory named my-app will be created under current directory.
Here is the structure of this project created by maven.
The POM
pom.xml file is the core of a project’s configuration in Maven.
Although hardly a comprehensive list, these are the most common default lifecycle phases executed.
validate: validate the project is correct and all necessary information is available
compile: compile the source code of the project
test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or
deployed
package: take the compiled code and package it in its distributable format, such as a JAR. integration-test: process and
deploy the package if necessary into an environment where integration
tests can be run
verify: run any checks to verify the package is valid and meets quality criteria
install: install the package into the local repository, for use as a dependency in other projects locally
deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other
developers and projects.
There are two other Maven lifecycles of note beyond the default list above. They are
clean: cleans up artifacts created by prior builds
site: generates site documentation for this project
Phases are actually mapped to underlying goals. The specific goals executed per phase is dependant upon the packaging type of the project. For example, package executes jar:jar if the project type is a JAR, and war:war if the project type is - you guessed it - a WAR.