《Maven实战》阅读笔记:chapter1-3

  • 何为构建:清理(clean)、编译(compile)、单元测试(test)、生成文档(doc)、打包(package)、部署(deploy)
  • 极限编程(XP):①简单;②交流与反馈;③测试驱动开发(TDD);④十分钟构建;⑤持续集成(CI);⑥富有信息的工作区。
  • 解压maven包:tar -xvzf apache-maven-x.x-bin.tar.gz
  • 在安装目录旁平行地创建一个符号链接,方便日后的升级(基于UNIX):ln -s maven文件夹名称 软连接文件名称
  • 查看maven版本:mvn -v
  • 如果要升级maven,使用软连接:
rm 软连接文件名称
ln -s 新的升级的maven文件夹 软连接文件名称
  • 打印出所有的java系统属性和环境变量:mvn help:system,依赖maven-help-plugin插件。
  • 可以在settings.xml中添加HTTP代理。
  • 运行mvn命令实际上是执行了Java命令,那么Java命令可用的参数当然也应该在运行mvn命令时可用。设置环境变量MAVEN_OPTS的值为:-Xms128m -Xmx512m
  • $ M2_HOME/conf/settings.xml是全局范围内的,最佳实践是~/.m2/settings.xml,即在~/.m2/下创建setting.xml`文件,这是用户范围内的,可以避免无意识地影响到系统中的其他用户。
  • 不要使用IDE内嵌的Maven。
  • 一个maven项目的基本坐标:groupId+artifactId+version。`
  • SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。
  • 绝大多数情况下,应该把项目主代码放到src/main/java/目录下,而无须额外的配置,Maven会自动搜寻该目录找到项目主代码。项目中默认的测试代码目录是src/test/java
  • 依赖的scopetest,说明该依赖只对测试有效。默认是compile,对主代码和测试代码都有效。
  • 一些常用命令:
mvn clean compile    ->   清理+编译
mvn clean test       ->   清理+编译+测试
mvn clean package    ->   清理+编译+测试+打包
mvn clean install    ->   清理+编译+测试+打包+安装(安装到本地仓库中)
  • maven-surefire-plugin是Maven负责执行测试的插件。
  • jar包设置一个main方法,使其称为可运行jar包。借助maven-shade-plugin。在pom.xml中配置:
<plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-shade-pluginartifactId>
        <version>1.2.1version>
        <executions>
            <execution>
                <phase>packagephase>
                <goals>
                    <goal>shadegoal>
                goals>
                <configuration>
                    <transformers>
                        <transformer implementation = "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>xxxmainClass>
                        transformer>
                    transformers>
                configuration>
            execution>
        executions>
plugin>

在打包好的jar文件中,META-INF/MANIFEST.MF文件中可以看到Main-Class一行。

  • 带有origin开头的jar是原始的jar,不可运行。
  • 执行可运行jar文件:java -jar jar包名称
  • Maven2中maven会解析最新的版本,而不是最新的稳定版本,所以往往需要指定版本。
  • mvn archetype:generate,创建项目骨架。
  • IDE中看到的maven依赖的包,其实际的位置指向了Maven本地仓库。

你可能感兴趣的:(Maven)