1.创建项目
这里介绍的是利用命名行创建,还可使用Eclipse等IDE工具创建,网上可以搜到很多创建方法。
(1).cd 到需要构建项目的目录。
(2).执行命令:mvn archetype:genarate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-webapp
这里需要了解几个名词:
groupId、artifactId、archetypeArtifactId、interactiveMode
maven中groupId、artifactId、version三个元素可以确定一个具体的项目,同样我们自己创建项目时也需要填写项目的这三个元素,其中groupId一般为公司或组织的url反写,如org.apache.maven;artifactId为项目名称或模块名称,如spring-orm模块,version为版本好,创建时默认为0.0.1--SNAPSHOT。archetypeArtifactId为项目骨架(模板),有点类似建大楼前先确定楼房的骨架一样,maven有非常多的方式可供选择,默认是maven-archetype-quickstart,通常会选择maven-archetype-webapp,这个骨架可自动生成一个标准的web项目结构。
2.标准maven项目目录
src/main/java 程序源文件
src/main/resources 程序资源文件
src/main/filters 资源筛选器文件
src/main/config 配置文件
src/mian/scripts 脚本资源文件
src/main/webapp Web应用程序源
src/test/java 测试源文件
src/test/resources 测试资源文件
src/test/filters 测试资源筛选器文件
src/it 集成测试 (主要是插件)
src/assembly 装配描述
src/site 网站
3.编译项目
mvn compile
4.测试
mvn test
mvn test-compile(只编译测试源代码,不执行)
5.打包
mvn package (文件类型为pom.xml中<packaging>设置的类型)
6.将打包好的jar包安装到本地仓库
mvn install
7.清理编译的源代码
mvn clan
8.生成站点
mvn site
9.筛选资源文件
maven默认的属性:这些默认属性可以在项目所有的资源文件或配置文件中使用
${pom.name} 项目名称
${pom.version} 项目版本
${pom.build.finalName} 最后打包生成的文件名
${user.home}
${env.X} 返回shell的环境变量,也就是我们在系统环境变量里配的名称,如${env.PATH} 返回PATH的值。
${project.X} 返回POM.xml中指定元素的值,如${project.encoding}返回定义的字符集
${java.home} 返回java系统属性,可以通过java.lang.System.getProperties()访问的所有属性都都可用作为 POM 属性
${settings.offline} 返回setting.xml中指定元素的值
${key} 在pom.xml的<properties />元素中定义的内容,都可以使用这种方式读取
<directory>${project.basedir}/target</directory> <outputDirectory>${project.build.directory}/classes</outputDirectory> <finalName>${project.artifactId}-${project.version}</finalName> <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory> <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory> <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
如果我们要自定义一些属性,可以把这些属性放到一个properties文件或者直接在pom.xml的<properties/>中定义,放置在src/main/filters/目录中,然后在pom.xml中引入
<build> <filters> <filter>src/main/filters/filter.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> 或 <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> <properties> <my.filter.value>hello</my.filter.value> </properties>