《Maven实战》读书笔记(二) Maven使用入门
第三章:Maven使用入门
1.Maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建、声明项目依赖、等等。
2.
<project> <modelVersion>4.0</modelVersion> <groupId>com.fancy.mvnbook</groupId> <artifactId>hello-world</artifactId> <version>1.0-SNAPSHOT</version> <name>Maven Hello World Project</name></project>
根元素的第一个子元素modelVersion定义了当前POM模型的版本,对于maven2及maven3来说,它只能是4.0.0.
这段代码中最重要的是包含groupId,artifactId和version的三行。这三行元素定义了一个项目基本的坐标,在maven的世界,任何jar,war或者pom都是基于这些基本的坐标进行区分的。
groupId定义了项目属于哪个组,这个组往往和项目所在的组织或者公司存在关联。
artifactId定义了当前maven项目在组中唯一的ID。
3.没有任何实际的java代码,我们就能够定义一个maven项目的POM,这体现了maven的一大优点,它能让项目对象模型最大程度与实际代码相独立,我们可以称之为解耦,或者正交性。
4.下面代码中有一个值为test的元素scope,scope为依赖范围,若依赖范围为test则表示该依赖只对测试有效。如果不声明依赖范围,那么默认为值就是compile,表示对主代码和测试代码都有效。
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope></dependency>
5.maven最主要的命令mvn clean compile:是清理target的内容并编译,mvn clean test:是执行测试,mvn clean package:是打包,mvn clean install:是将项目输出的jar安装到maven的本地仓库中。
6.为了生成可执行的jar文件,需要借助maven-shade-plugin,配置该插件如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.2.1</version> <executions> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransFormer"> <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass> </transformer> </transformers> </configuration> </executions></plugin>
6.使用Archetype生成项目骨架:如果是maven3,简单地运行mvn archetype:generate。如果是maven2,最好运行命令mvn org.apache.maven.plugin.plugins:maven-archetype-plugin:2.0-alpha-5:generate。