Maven学习归纳

Maven实战学习笔记

基础知识
  • 定义:
    • Maven 是一个项目管理工具,主要用于项目构建依赖管理项目信息管理
  • 下载安装:
    • Maven 官方下载网址:http://maven.apache.org/download.cgi
    • 解压
    • 环境变量配置:
      • MAVEN_HOME:bin的上一层目录
      • Path:%MAVEM_HOME%\bin
    • 测试部署是否成功:cmd => mvn -v
  • Maven项目文件结构
    • src/main/java - 存放项目.java文件
    • src/main/resources - 存放项目资源文件
    • src/test/java - 存放测试类.java文件
    • src/test/resources - 存放测试资源文件
    • target - 项目输出目录
    • pom.xml - Maven核心文件(Project Object Model)
  • Maven常用命令
    • mvn archetype:create 创建Maven项目
    • mvn compile 编译源代码
    • mvn deploy 发布项目
    • mvn test-compile 编译测试源代码
    • mvn test 运行应用程序中的单元测试
    • mvn site 生成项目相关信息的网站
    • mvn clean 清除项目目录中的生成结果
    • mvn package 根据项目生成的jar
    • mvn install 在本地Repository中安装jar
    • mvn eclipse:eclipse 生成eclipse项目文件
    • mvn jetty:run 启动jetty服务
    • mvn tomcat:run 启动tomcat服务
    • mvn clean package -Dmaven.test.skip=true 清除以前的包后重新打包,跳过测试类
pom 进阶教程
  • 传递性 transitive
    • maven的依赖关系是可传递的。比如:如果A依赖B,B依赖C,那么A也将依赖C。
    • 查看项目的依赖关系命令:mvn dependency:tree
  • 作用范围 scope
    • compile, 默认值, 在mvn的编译/运行/测试/打包过程中, 都会将依赖加入到classpath, 在war包package过程中, 默认情况下会将依赖的库导入到war包的lib中。 compile类型的依赖是可传递的.
    • provided,只在编译和测试阶段,将依赖加入到classpath, 在运行和打包时, 会忽略它们. 在运行时,需要jdk或是容器(例如tomcat, jetty)来提供这部分库 . provided类型的依赖不可传递。
    • runtime,只是在运行和测试时, 才将依赖加到classpath. 比如, 通过配置文件/依赖注入/反射机制调用所依赖的库时, 可以使用runtime, 因为代码里没有直接引用依赖, 因此编译时不需要链接所依赖的库. runtime类型依赖是可传递的.
    • test ,只是在测试阶段使用, 不可传递
    • system, 类似于provided, 但是maven不会在仓库中搜索依赖, 而是需要使用systemPath(绝对路径)来指定搜索的目录. system类型依赖是可传递的.
Maven的生命周期

  • maven指令与生命周期阶段的关系

  • maven生命周期各个阶段的行为与maven默认行为

    • mvn compile //让当前项目经历生命周期中的1–>7 阶段 :完成编译主源代码编译
    • mvn package //让当前项目经历生命周期中的1–>17阶段 :完成打包
    • mvn install //让当前项目经历生命周期中的1–>22阶段 :完成包安装到本地仓库
    • mvn deploy //让当前生命经历生命周期中的1–>23阶段 :完成包部署到中心库中
  • jar和war包类型的项目生命周期阶段的默认行为

Maven插件
  • 将依赖Jar包打入项目内
<build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <compilerArgs>
                        <arg>-Xlint:unchecked</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
        </plugins>
        <finalName>${project.artifactId}_${project.version}-b${maven.build.timestamp}.${buildNumber}</finalName>
    </build>
Maven搭建私服
  • 私服搭建

  • 连接私服

    • maven setting.xml 配置修改
      • setting文件设置:
      • <mirrors>
        <mirror>
        <id>test</id>
        <mirrorOf>*</mirrorOf>
        <name>test</name>
        <url>http://10.8.4.78:7871/test/content/groups/public/</url>
        </mirror>
        </mirrors>
    • 项目pom.xml 配置修改
      • 编辑项目下pom.xml, 在<project><url>....</url>${这里加入配置}</project>
      • <repositories>
        <repository>
        <id>test</id>
        <name>test</name><url>http://10.8.4.78:7871/test/content/groups/public/</url>
        </repositories>
        <pluginRepositories>
        <pluginRepository>
        <id>test</id>
        <name>test</name>
        <url>http://10.8.4.78:7871/test/content/groups/public/</url>
        </pluginRepository>
        </pluginRepositories>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值