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>
配置文件中的属性含义,我就不一一解释了,《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)