使用入门
生命周期
构建生命周期显式地定义了构建,测试,和发布的过程,是每个Maven工程的核心。Maven包含了3个内置的生命周期:default,clean和site。
1)default生命周期处理了工程的编译,测试和部署,他一共包含20多个阶段,主要的阶段如下:
Validate: 验证所有的工程信息是否可用且正确
Compile: 编译源代码
Test: 在一套framework下运行单元测试
Package: 以发布的格式打包编译的代码
Integration-test: 在集成测试环境中处理(部署)发布包
Verify: 检测发布包是否正确可用
Install: 在本地的repository上安装发布包
Deploy: 在远程的repository上安装发布包
以上的阶段具有先后顺序,执行某个阶段时,此阶段前的所有阶段都会被自动地执行。
2)clean生命周期处理工程的清理工作,包含3个阶段:pre-clean, clean, post-clean。
3)site生命周期处理工程site文档的生成和部署,包含下列阶段:
pre-site, site, post-site 和site-deploy,其中site-deploy用来将site文档部署到指定的web server上。
结合Ant
常见问题汇总
source问题
一般是由于不同的Java版本支持不同类型的特性,有的版本不支持新特性造成的,编译时添加对应的编译目标就可以了。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
多子模块项目,编译找不到对应的代码
有多个子模块的项目中,模块之间相互依赖,加入对应的依赖关系后,单元测试可以运行,项目中也可以找到,但是编译的时候找不到对应的代码。需要编译整个项目,mvn install后,对应的代码包才能运行。
intellij idea新建maven项目,一直loading archetype list…..
新建项目后,会从本地读取对应配置文件。默认的回去主目录下的.IntelliJIdea目录下的system下面的maven目录下加载,删除对应的文件,然后重启idea。