Maven实战(编辑中)

参考:《Maven实战》

Maven使用入门

编写POM

POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
一个例子:
在这里插入图片描述

  • 第一行:XML头、指定了该xml文档的版本和编码方式
  • project元素:所有pom.xml的根元素,声明了一些POM相关的命名空间及xsd元素,不是必须的,但使用这些属性能够让第三方工具(如IDE中的XML编辑器)帮助我们快速编辑POM。
  • modelVersion:指定了当前POM模型的版本,对于Maven 2及Maven 3来说,它只能是4.0.0。
  • groupId:定义了项目属于哪个组,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp。
  • artifactId:定义了当前Maven项目在组中唯一的ID
  • version:version指定了项目当前的版本——1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。
  • name:声明了一个对于用户更为友好的项目名称,不是必须的。

编写主代码

  • 默认情况下,Maven假设项目主代码位于src/main/java目录
  • 包名要与在POM中定义的groupId和artifactId相吻合,这样更加清晰,更加符合逻辑,也方便搜索构件或者Java类。

代码编写完后,在项目根目录下运行命令mvn clean compile
从输出中看到Maven首先执行了clean:clean任务,删除target/目录。默认情况下,Maven构建的所有输出都在target/目录中;接着执行resources:resources任务(未定义项目资源,暂且略过);最后执行compiler:compile任务,将项目主代码编译至target/classes目录

编写测试代码

  • 测试代码写在src/test/java
  • pom中增加junit的依赖
  • 编译命令:mvn clean test
  • 在Maven执行测试(test)之前,它会先自动执行项目主资源处理、主代码编译、测试资源处理、测试代码编译等工作,这是Maven生命周期的一个特性。
  • pom中增加依赖,因为Maven的核心插件之一——compiler插件默认只支持编译Java 1.3,因此需要配置该插件使其支持Java 5
    <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 clean package
  • Maven会在打包之前执行编译、测试等操作
  • jar包它是根据artifact-version.jar规则进行命名
  • 安装(将jar包放到maven本地仓库,供其他项目或模块引用):mvn clean install
  • 执行test之前是会先执行compile的,执行package之前是会先执行test的,而类似地,install之前会执行package

依赖

  • groupId:定义当前Maven项目隶属的实际项目,Maven项目和实际项目不一定是一对一的关系,一个实际项目往往会被划分成很多模块。

  • artifactId:该元素定义实际项目中的一个Maven项目(模块)

  • version:该元素定义Maven项目当前所处的版本

  • packaging:该元素定义Maven项目的打包方式,当不定义packaging的时候,Maven会使用默认值jar

  • classifier:该元素用来帮助定义构建输出的一些附属构件,不能直接定义项目的classifier,因为附属构件不是项目直接默认生成的,而是由附加的插件帮助生成。

  • type:依赖的类型,对应于项目坐标定义的packaging

  • scope:依赖的范围
    在这里插入图片描述

  • optional:标记依赖是否可选

  • exclusions:用来排除传递性依赖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值