`

《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。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics