Maven简单介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven简单介绍相关的知识,希望对你有一定的参考价值。

一、Maven是什么?

 我不想贴上一大堆的专业词汇,别人看不懂,自己看起来也麻烦。我只是把它理解为一个项目管理工具。Maven项目也是一个项目,和JavaProject、JavaWebProject类似,只不过多了一些功能,不要想的太复杂。多出的这些功能,也就是使用Maven的好处,我也就简单理解为以下几点:

 1、帮我们的项目下载jar包

  我们开发一个项目,或多或少的会用到一些jar包,如果不用Maven的话,我们需要自己下载jar包,导入jar包。如果使用Maven的话,只要配置好配置文件,这些工作就不需要我们手动来做了,就是这样。

 2、帮我们寻找依赖,自动下载依赖

  和第一条差不多,我们用到的一些jar包,很可能会依赖其他的一些jar包,我们同样不需要手动操作。

 3、热部署,热编译

  也就是说,当我们修改了代码之后,不用总是重新部署项目,重启服务器了,我们修改的代码能够直接被服务器接收,操作方便。

 我就这么简单的理解一下,更多的知识,可以查阅《Maven实战》,这里给出一个电子版的,但是章节不全。

 以上这些,参考了这篇文章,http://www.th7.cn/Program/java/201503/407878.shtml

二、Maven的配置

 1、Maven项目中会有一个pom.xml文件,我们需要在这个文件中配置项目所使用到的jar包,这里贴一个示例。

技术分享
  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>fotonpts</groupId>
  4   <artifactId>fotonpts</artifactId>
  5   <version>0.0.1-SNAPSHOT</version>
  6   <packaging>war</packaging>
  7   <name/>
  8   <description/>
  9   <properties>
 10     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 11     <spring.version>4.1.0.RELEASE</spring.version>
 12   </properties>
 13   <dependencies>
 14       <!-- Spring -->
 15     <dependency>
 16         <groupId>org.springframework</groupId>
 17         <artifactId>spring-core</artifactId>
 18         <version>${spring.version}</version>
 19     </dependency>
 20     <dependency>
 21         <groupId>org.springframework</groupId>
 22         <artifactId>spring-web</artifactId>
 23         <version>${spring.version}</version>
 24     </dependency>
 25     <dependency>
 26         <groupId>org.springframework</groupId>
 27         <artifactId>spring-webmvc</artifactId>
 28         <version>${spring.version}</version>
 29     </dependency>
 30     <dependency>
 31         <groupId>org.springframework</groupId>
 32         <artifactId>spring-jdbc</artifactId>
 33         <version>${spring.version}</version>
 34     </dependency>
 35     <dependency>
 36         <groupId>org.springframework</groupId>
 37         <artifactId>spring-orm</artifactId>
 38         <version>${spring.version}</version>
 39     </dependency>
 40     <dependency>
 41         <groupId>org.springframework</groupId>
 42         <artifactId>spring-tx</artifactId>
 43         <version>${spring.version}</version>
 44     </dependency>
 45     <dependency>
 46         <groupId>org.springframework</groupId>
 47         <artifactId>spring-context-support</artifactId>
 48         <version>${spring.version}</version>
 49     </dependency>
 50    <!-- Aspectj -->
 51     <dependency>
 52         <groupId>org.aspectj</groupId>
 53         <artifactId>aspectjweaver</artifactId>
 54         <version>1.8.2</version>
 55     </dependency>
 56     <dependency>
 57       <groupId>javax.servlet</groupId>
 58       <artifactId>jstl</artifactId>
 59       <version>1.2</version>
 60       <scope>provided</scope>
 61     </dependency>
 62     <dependency>
 63       <groupId>javax.servlet.jsp</groupId>
 64       <artifactId>jsp-api</artifactId>
 65       <version>2.1</version>
 66       <scope>provided</scope>
 67     </dependency>
 68     <dependency>
 69       <groupId>org.glassfish</groupId>
 70       <artifactId>javax.annotation</artifactId>
 71       <version>3.0.1</version>
 72     </dependency>
 73     <dependency>
 74       <groupId>org.glassfish</groupId>
 75       <artifactId>javax.ejb</artifactId>
 76       <version>3.0.1</version>
 77     </dependency>
 78     <dependency>
 79       <groupId>org.jboss.weld</groupId>
 80       <artifactId>weld-osgi-bundle</artifactId>
 81       <version>1.0.1-SP3</version>
 82     </dependency>
 83     <dependency>
 84       <groupId>org.glassfish</groupId>
 85       <artifactId>javax.servlet</artifactId>
 86       <version>3.0.1</version>
 87     </dependency>
 88     <dependency>
 89          <groupId>commons-codec</groupId>
 90          <artifactId>commons-codec</artifactId>
 91          <version>1.10</version>
 92      </dependency>
 93      <dependency>
 94         <groupId>commons-logging</groupId>
 95         <artifactId>commons-logging</artifactId>
 96         <version>1.2</version>
 97     </dependency>
 98      <dependency>
 99           <groupId>org.apache.httpcomponents</groupId>
100           <artifactId>httpclient</artifactId>
101           <version>4.5</version>
102       </dependency>
103       <dependency>
104           <groupId>org.apache.httpcomponents</groupId>
105           <artifactId>httpmime</artifactId>
106           <version>4.5</version>
107       </dependency>
108       <dependency>
109             <groupId>dom4j</groupId>
110             <artifactId>dom4j</artifactId>
111             <version>1.6.1</version>
112       </dependency>
113       <dependency>
114             <groupId>com.alibaba</groupId>
115             <artifactId>fastjson</artifactId>
116             <version>1.2.8</version>
117       </dependency>
118       <dependency>
119             <groupId>log4j</groupId>
120             <artifactId>log4j</artifactId>
121             <version>1.2.17</version>
122       </dependency>
123       <dependency>
124             <groupId>mysql</groupId>
125             <artifactId>mysql-connector-java</artifactId>
126             <version>5.1.37</version>
127       </dependency>
128   </dependencies>
129   <build>
130     <sourceDirectory>${basedir}/src</sourceDirectory>
131     <outputDirectory>${basedir}/WebRoot/WEB-INF/classes</outputDirectory>
132     <resources>
133       <resource>
134         <directory>${basedir}/src</directory>
135         <excludes>
136           <exclude>**/*.java</exclude>
137         </excludes>
138       </resource>
139     </resources>
140     <plugins>
141       <plugin>
142         <artifactId>maven-war-plugin</artifactId>
143         <configuration>
144           <webappDirectory>${basedir}/WebRoot</webappDirectory>
145           <warSourceDirectory>${basedir}/WebRoot</warSourceDirectory>
146         </configuration>
147       </plugin>
148       <plugin>
149         <artifactId>maven-compiler-plugin</artifactId>
150         <configuration>
151           <source>1.6</source>
152           <target>1.6</target>
153         </configuration>
154       </plugin>
155     </plugins>
156   </build>
157 </project>
View Code

   配置文件中的属性含义,我就不一一解释了,《Maven实战》中讲的都很清楚。

 2、Maven还有一个重要的文件settings.xml,这个文件来源于apache-maven-*.*/conf/下。在这个文件中找到<localRepository>d:/work</localRepository>这一行,进行修改。这一行代表了Maven的Jar包仓库的位置。work下放的都是项目所用到的jar包,每个Project都可以共用一个work。

三、Maven的使用

 可以单独安装Maven,也可以使用Eclipse集成的Maven。

 这里只说一下Eclipse集成的Maven的使用吧。在Eclipse的Preferences中直接输入Maven,找到Maven下的User Settings选项,在右侧的User Settings一项中选择Browse,找到自己的settings.xml,然后点击一下Update Settings,看看下面的Local Repository是否是settings.xml文件中配置的路径,如果是,则直接Apply,OK。

技术分享

 或者也可以直接使用Eclipse自带的而不用设置什么,只需要新建一个Maven Project即可,那么Jar包的存放路径就是Eclipse默认的路径。

 新建一个Maven项目或者导入一个已有的Maven项目时,需要注意的是电脑必须联网,因为Maven需要从中央仓库中下载所需要的Jar包。

以上是关于Maven简单介绍的主要内容,如果未能解决你的问题,请参考以下文章

maven plugin 简单介绍和实战 (2021-05-29)

maven plugin 简单介绍和实战 (2021-05-29)

Maven简单介绍

Maven学习笔记1:Maven基本介绍和安装配置

Websocket教程SpringBoot+Maven整合(目录)

maven简介