maven使用以及遇到的一些问题记录

maven下载路径:http://maven.apache.org/download.cgi
maven环境变量配置:我的电脑——》属性——》高级环境配置——》环境变量
系统变量 M2_HOME:maven的bin父目录,path中配置%M2_HOME%\bin,在命令行敲mvn -v查看maven版本,也顺便看下环境配置是否成功。
maven常用命令:clean,package,test,install,compile
mvn compile编译项目
mvn test 测试项目
mvn package 项目打包 打的包在target目录下
mvn clean 删除target目录
mvn install 打包编译jar到本地仓库
mvn archetype:generate 创建骨架目录
maven 骨架目录说明
src/main/java/主代码
src/test/java测试目录
根目录有个pom.xml用于项目管理依赖与构建
maven仓库与坐标
更改仓库位置:在某个盘下创建一repo文件,修改setting.xml文件的仓库位置为X:\repo并把setting.xml放repo文件下,修改myeclipse的maven use setting的X:\setting.xml。
Maven的坐标为各种构件引入了秩序,任何一个构件都必须明确的定义自己的坐标,maven的坐标包括如下的元素:
groupId: 定义当前Maven项目隶属的实际项目(反写公司网址+项目名)
artifactId: 该元素定义实际项目中的一个Maven项目或模块(项目名+模块名)
version: 该元素定义Maven项目当前所处的版本
packaging: 该元素定义Maven项目的打包方式
maven 依赖传递性
A->B->C C会同时依赖AB,现在如果C只想依赖B,不想依赖A
exclusions:排除依赖

<dependency>
     <groupId>com.huahuagroupId>
      <artifactId>huahua-BartifactId>
      <version>0.0.1-SNAPSHOTversion>
      <exclusions>
        <exclusion>
            <groupId>com.huahuagroupId>
              <artifactId>huahua-AartifactId>
        exclusion>
      exclusions>
    dependency>


聚合
创建另一个maven项目C,这样A,B项目可以同时编译打包,而不需要一个一个的去打包,不过C 项目的package设置成pom,这个pom.xml可以看成是一个总的pom.xml,代码如下


../huahua-A
../huahua-B
  

继承
每个maven项目引用了同一个包时,我们就可以抽象出一个pom.xml的项目

 <properties>
    <junit.version>3.8.1junit.version>
  properties>

  <dependencyManagement>
    <dependencies>
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
      <version>${junit.version}version>
      <scope>testscope>
    dependency>
  dependencies>

其他子maven项目pom.xml就可以如下定义依赖包:

<parent>
    <groupId>com.huahuagroupId>
  <artifactId>huahua-parentartifactId>
  <version>0.0.1-SNAPSHOTversion>
 parent>

 <dependencies>
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
    dependency>
  dependencies>

这样换版本的时候就不用一个一个去修改了,只要修改总的pom.xml文件就行了

maven创建一个web项目
只要在pom.xml文件中加入jetty或是tomcat插件再加上servlet的包就可以访问一个web项目了

<dependencies>
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
      <version>4.10version>
      <scope>testscope>
    dependency>
    <dependency>
    <groupId>javax.servletgroupId>
    <artifactId>javax.servlet-apiartifactId>
    <version>4.0.0version>
    <scope>providedscope>
    dependency>
  dependencies>
  <build>
    <finalName>maven01-model1finalName>
    <plugins>
        <plugin>
                <groupId>org.mortbay.jettygroupId>
                <artifactId>jetty-maven-pluginartifactId>
                <version>8.1.16.v20140903version>
                <executions>
                    <execution>
                        <phase>packagephase>
                        <goals>
                            <goal>rungoal>
                        goals>
                    execution>
                executions>
        plugin>
    plugins>
  build>

executions 在打包的时候运行jetty插件 (在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。)

在创建maven项目时,特别要注意查看setting.xml,pom.xml文件是否正确,setting.xml错误会导致创建不了maven项目包缺陷包的错误。pom.xml文件错误会导致项目没法通过编译。

你可能感兴趣的:(maven)