maven学习

mvn archetype:create -DgroupId=* -DartifactId=* -DpackageName=*
可以使用archetype插件来构建一个非常简单的java项目.
create是archetype插件的目标.
插件和目标

mvn help:effective-pom
可以查看最顶层的pom文件, pom (project object model)

maven依靠的是它自带的或者可自动下载的一系列插件, 编译源码的时候有compile插件, 打包的时候有jar插件, 测试的时候有Surefile插件.

当执行mvn package的时候, 并没有执行插件目标, 这里执行的是maven生命周期的一个阶段.

maven生命周期的每个阶段都绑定了0个或多个插件目标, 当执行mvn package的时候, 它首先会有序执行前面的所有阶段, 然后执行每个阶段绑定的插件目标:
resources阶段
resources:resources
compile阶段
compile:compile
test-resources阶段
resources:testResources
test-compile阶段
compile:testCompile
test阶段
surefire:test
package阶段
jar:jar
被绑定的插件目标随着它们的阶段运行而运行

maven项目都一个用一个唯一的坐标来标示, groupId:artifactId:packaging:version, 其中packaging是可以省略的.

去http://search.maven.org/去查看maven中央仓库中拥有的构件吧!

maven的依赖管理, 传递性依赖, pom文件中定义的依赖默认是不会捆绑到生成的构建但中的, 而是在编译的时候加入到classpath中.


[b]定制一个Maven项目:[/b]
1 使用插件目标生成一个项目, archetype:create
2 定制项目信息, 在pom文件中<name/>, <url/>, <licenses/>, <organization />, <developers />等元素
3 添加依赖, <dependencies />
4 由于archetype:create插件目标没有生成资源文件夹,我们需要自己动手在src/main下创建资源文件夹resources, 可以放log4j.properties等资源文件.
5 编写测试用户, 添加测试资源文件. 执行测试等等
6 在执行maven生命周期阶段的时候, 可以跳过单元测试, 要在pom文件中手动去配置surefire插件.
<project> [...]
<build> <plugins>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration>
<skip>true</skip> </configuration>
</plugin> </plugins>
</build>
[...] </project>

[b]多模块的企业级应用[/b]
parent项目:
<groupId>org.sonatype.mavenbook.ch07</groupId>
<artifactId>simple-parent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>

<name>Chapter 7 Simple Parent Project</name>

<modules>
<module>simple-command</module>
<module>simple-model</module>
<module>simple-weather</module>
<module>simple-persist</module>
<module>simple-webapp</module>
</modules>
这个项目知道去他的目录下去寻找各个module, 并寻找各个module子文件夹下面的pom文件.

看其中的一个子项目simple-weather的pom文件:
<parent>
<groupId>org.sonatype.mavenbook.ch07</groupId>
<artifactId>simple-parent</artifactId>
<version>1.0</version>
</parent>

<artifactId>simple-model</artifactId>
<packaging>jar</packaging>
指定了它的parent pom文件, 它自己并没有指定groupId和version, 因为都由parent pom文件指定好了

[b]maven的构建生命周期[/b]
默认有3中生命周期, clean, default, site
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值