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

来源:互联网 发布:固定资产管理 源码 编辑:程序博客网 时间:2024/05/22 19:44

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.huahua</groupId>      <artifactId>huahua-B</artifactId>      <version>0.0.1-SNAPSHOT</version>      <exclusions>        <exclusion>            <groupId>com.huahua</groupId>              <artifactId>huahua-A</artifactId>        </exclusion>      </exclusions>    </dependency>

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

<modules><module>../huahua-A</module><module>../huahua-B</module></modules>  

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

 <properties>    <junit.version>3.8.1</junit.version>  </properties>  <dependencyManagement>    <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>${junit.version}</version>      <scope>test</scope>    </dependency>  </dependencies>

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

<parent>    <groupId>com.huahua</groupId>  <artifactId>huahua-parent</artifactId>  <version>0.0.1-SNAPSHOT</version> </parent> <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>    </dependency>  </dependencies>

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

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

<dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.10</version>      <scope>test</scope>    </dependency>    <dependency>    <groupId>javax.servlet</groupId>    <artifactId>javax.servlet-api</artifactId>    <version>4.0.0</version>    <scope>provided</scope>    </dependency>  </dependencies>  <build>    <finalName>maven01-model1</finalName>    <plugins>        <plugin>                <groupId>org.mortbay.jetty</groupId>                <artifactId>jetty-maven-plugin</artifactId>                <version>8.1.16.v20140903</version>                <executions>                    <execution>                        <phase>package</phase>                        <goals>                            <goal>run</goal>                        </goals>                    </execution>                </executions>        </plugin>    </plugins>  </build>

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

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

原创粉丝点击