maven入门

来源:互联网 发布:淘宝买家秀怎么发视频 编辑:程序博客网 时间:2024/06/08 05:34

Maven

1. maven的用途

maven是一个项目构建和管理的工具,提供了帮助管理构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。

maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性

利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。

2、maven的核心概念介绍

   2.1.maven的原理图

   2.2 maven 日用命令

mvn archetype:generate 创建 Maven 项目

mvn compile 编译源代码

mvn test-compile 编译测试代码

mvn test  运行应用程序中的单元测试

mvn site  生成项目相关信息的网站

mvn clean  清除目标目录中的生成结果

mvn package  依据项目生成 jar 文件

mvn install  在本地 Repository 中安装 jar

mvn deploy 将jar包发布到远程仓库

mvn eclipse:eclipse 生成 Eclipse 项目文件

2.3    项目目录结构

   

2.4修改settings文件

在E:\apache-maven-3.0.4_localtest\conf中修改settings.xml文件

 

1.修改maven所在的位置

 

    2.设值访问的仓库地址

 

3.maven安装

1.从http://maven.apache.org/download.html下载最新的maven,解压到指定目录。

2.配置环境变量

 

 

4.maven在eclipse中的配置

 

 

 

5.在eclipse中创建maven项目

   

 

5.1生成web描述符(web.xml)

   

5.2 maven 运行web项目

 

   

 

6.pom.xml介绍

6.1属性定义

1.   <properties>  

2.      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  

3.       <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  

4.      <java.version>1.7</java.version>  

5.       <spring-cloud.version>Dalston.SR3</spring-cloud.version>  

6.  </properties>  

6.2依赖控制

1.   <dependency>  

2.              <groupId>org.springframework.boot</groupId>  

3.               <artifactId>spring-boot-starter-test</artifactId>  

4.                          <version>${属性名}</version>  

5.               <scope>test</scope>  

6.  </dependency>  

 

6.3介绍scope各个值得参考

1.   compile:默认的scope。任何定义在compile scope下的依赖将会在所有的class paths下可用。maven工程会将其打包到最终的arifact中。如果你构建一个WAR类型的artefact,那么在compile scope下引用的JAR文件将会被集成到WAR文件内。  

2.    

3.   provided:这个scope假定对应的依赖会由运行这个应用的JDK或者容器来提供。最好的例子就是servlet API。任何在provided scope下定义的依赖在构建时的类路径里是可用的,但是不会被打包到最终的artifact中。如果是一个WAR的文件,servlet API在构建时的类路径里是可用的,但是并不会被打包到WAR文件中。  

4.    

5.   runtime:在runtime scope下定义的依赖只会在运行期可用,而在构建期的类路径下不可用。这些依赖将会被打包到最终的artifact中。比如你有一个基于web的应用需要在运行时访问MySQL数据库。你的代码没有任何MySQL数据库驱动的硬依赖。你的代码仅仅是基于JDBC API来编写,在构建期并不需要MySQL数据库驱动。然而,在运行期,就需要相应的驱动来操作MySQL数据库了。因此,这个驱动应该被打包到最终的artifact中。  

6.    

7.   test:只用于测试变异的依赖(比如JUnit),execution必须定义在test scope下。这些依赖不会被打包到最终的artefact中。  

8.    

9.   system:于provided scope很像。唯一的区别在于,在system scope中,你需要告诉Mave如何去找到这个依赖。如果你要引用的依赖在Maven仓库中不存在时,就可以用这个scope。不推荐使用system依赖。  

10.  

11. import:从其它的pom文件中导入依赖设置。 

6.4 tomcat插件配置端口及编码

   <build>  

   <plugins>  

          <plugin>  

               <groupId>org.codehaus.mojo</groupId>  

            <artifactId>tomcat-maven-plugin</artifactId>  

           <version>1.1</version>  

             <configuration>  

              <port>8089</port>  

             <uriEncoding>utf-8</uriEncoding>  

          </configuration>  

         </plugin>  

    </plugins>  

 </build>  

7.pom 项目pom.xml

1.   <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><pre name="code" class="html">  <modelVersion>4.0.0</modelVersion>  

2.    <groupId>com.et</groupId>  

3.     <artifactId>upload-common</artifactId>  

4.    <version>0.0.1-SNAPSHOT</version>  

5.     <packaging>pom</packaging>  

6.    <!-- 定义所有jar的版本库 -->  

7.     <properties>  

8.      <fileupload-version>1.2.1</fileupload-version>  

9.     </properties>  

10.  <!-- 子项目直接加载 -->  

11.   <dependencies>  

12.    <dependency>  

13.       <groupId>commons-beanutils</groupId>  

14.      <artifactId>commons-beanutils</artifactId>  

15.       <version>1.9.3</version>  

16.    </dependency>  

17.   </dependencies>  

18.  <!-- 只是定义所有的版本信息  子项目可以选择性加载-->  

19.   <dependencyManagement>  

20.    <dependencies>  

21.         <dependency>  

22.          <groupId>commons-fileUpload</groupId>  

23.           <artifactId>commons-fileUpload</artifactId>  

24.          <version>${fileupload-version}</version>  

25.         </dependency>  

26.    </dependencies>  

27.   </dependencyManagement>  

28.</project>

8.war项目中的pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2.   <modelVersion>4.0.0</modelVersion>
  3.   <groupId>com.et</groupId>
  4.   <artifactId>biadupan</artifactId>
  5.   <version>0.0.1-SNAPSHOT</version>
  6.   <packaging>war</packaging>
  7.   <!--引用父类中定义的jar  -->
  8.   <parent>
  9.     <groupId>com.et</groupId>
  10.      <artifactId>upload-common</artifactId>
  11.      <version>0.0.1-SNAPSHOT</version>
  12.   </parent>
  13.   <!-- 父类中已经定义了版本,子类不需要定义 -->
  14.   <dependencies>
  15.   <dependency>
  16.       <groupId>commons-fileUpload</groupId>
  17.         <artifactId>commons-fileUpload</artifactId>
  18.   </dependency>
  19.   </dependencies>
  20. </project>

 

原创粉丝点击