小编最近正在学习使用MVC框架,在搭建Maven的项目过程中,遇到了很多问题,上网搜了很多材料才找到答案,为了小编以后查起来方便,也为了向广大小伙伴分享,写了这部片博文,敬我昨天一天的学习结果!
步骤如下:
第一部分:创建Maven项目
1.首先我们需要新建一个工程,小编使用的是Idea的编辑器,eclipse的大体类似。使用File ->New->Project
2.在新弹出的对话框中,选择Maven工程,在右侧勾选“2”位置处的内容,在下面的选项中找到后缀为webapp的,选中后点击Next。
需要注意的是,右边的选项中有两个webapp,如箭头所示,我们使用第二个。
如果使用第一个的话,会遇到各种报错,至于报什么错呢,各位看官显得无聊可以试试,小编就不多说了。
3.填写一些项目内容。
GroupId和ArtifactId可以随便填写,填写完成后,点击Next。
4. 配置Maven
在新弹出的对话框中配置Maven版本和配置路径。
如果电脑上已经存在Maven,点击“Maven home directory” 后面的按钮,选择本机的Maven就好。如果没有预装,可以直接使用Idea提供的,即图示“Bundeld(Maven)”,点击下拉框可在各个Maven版本中切换。
“User setting file”和"Local repository"选项,可以使用默认路径,也可以点击“Overide”,然后重新自定义路径。新手的话,推荐使用默认。
全部设置完成后,点击Next。
在新弹出的对话框中,配置项目路径和名称,配置完成后点击Finish。一个Maven的壳子就创建完成啦。
为新项目选择新开一个窗口,当然也可以选择在本窗口打开,各凭喜好。
最后就是等待项目加载完成,在这里会弹出一个提示框,我们选择Enable auto-import,允许项目自动将需要的jar包导入,省去手工导入的操作。
第二部分:配置项目结构
1.配置项目框架
小编使用的是MVC模式,因此需要将MVC框架的内容加载到项目中。
在项目名称上右键,选择Add Framework Support。
在新弹出的对话框的左侧中,找到并勾选Spring MVC。在右侧,可以选择使用本机已有的Spring MVC,也可以选择Idea 自动下载,即“Download”。勾选完成后点击“OK”
你会看到编译器正在下载Spring相关的内容。
下载完成后,左侧的目录结构中会多出一个lib文件夹,里面存放的是Spring MVC相关的jar包,由于我们会在之后的pom.xml文件中配置这些内容,因此这个文件夹可以直接删掉。
2.配置项目文件结构
MVC简单来讲,是将model,view, controller分离,单独编码,单独管理,因此,我们在为项目配置目录结构的时候,夜莺从这几方面考虑。
在Maven自动生成的目录结构中,
我们在main目录下创建java文件夹,其下分别创建condition,controller,dao,service,mapper文件夹,用于存放和管理后台代码;创建resources文件夹,用于存放资源文件。
在src目录下创建test文件夹,用于存放单元测试代码。
在webapp文件夹下创建res文件夹,其下依次创建js,css,img文件夹,用于存放相应类型的文件;在WEB-INF文件夹下创建views文件夹,用于存放jsp页面文件。
完整的目录结构如下:
3.为文件夹配置权限
创建完文件后,可能会发现,在任何文件夹下都无法创建java文件,此时,我们需要为刚刚创建的文件夹配置权限。
选择“File -> Project Structure”,打开对话框,点击java文件夹,选择Sources,点击resources文件夹,选择Resources,点击test文件夹,选择Test。
配置完成后选择Apply 然后。关闭对话框,就会发现,文件夹的颜色和形态发生了变化,此时,就可以在java下创建class文件了。
4.配置pom.xml文件
现直接将小编的完整的XML文件奉上
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>MavenDemo2</groupId> 8 <artifactId>test.maven</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 <packaging>war</packaging> 11 12 <name>test.maven Maven Webapp</name> 13 <!-- FIXME change it to the project's website --> 14 <url>http://www.example.com</url> 15 16 <properties> 17 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 18 <maven.compiler.source>1.7</maven.compiler.source> 19 <maven.compiler.target>1.7</maven.compiler.target> 20 </properties> 21 22 <dependencies> 23 <dependency> 24 <!-- junit测试包--> 25 <groupId>junit</groupId> 26 <artifactId>junit</artifactId> 27 <version>4.11</version> 28 <scope>test</scope> 29 </dependency> 30 <!--日志包--> 31 <dependency> 32 <groupId>org.slf4j</groupId> 33 <artifactId>slf4j-log4j12</artifactId> 34 <version>1.8.0-alpha2</version> 35 </dependency> 36 <!--mysql驱动包--> 37 <dependency> 38 <groupId>mysql</groupId> 39 <artifactId>mysql-connector-java</artifactId> 40 <version>6.0.6</version> 41 </dependency> 42 <!-- JDBC连接池 --> 43 <dependency> 44 <groupId>com.mchange</groupId> 45 <artifactId>c3p0</artifactId> 46 <version>0.9.5.2</version> 47 </dependency> 48 <!-- DruidDataSource,本工程的dataSource配置使用的Druid --> 49 <dependency> 50 <groupId>com.alibaba</groupId> 51 <artifactId>druid</artifactId> 52 <version>1.0.29</version> 53 </dependency> 54 <!--spring相关包--> 55 <dependency> 56 <groupId>org.springframework</groupId> 57 <artifactId>spring-web</artifactId> 58 <version>4.3.8.RELEASE</version> 59 </dependency> 60 <dependency> 61 <groupId>org.springframework</groupId> 62 <artifactId>spring-webmvc</artifactId> 63 <version>4.3.8.RELEASE</version> 64 </dependency> 65 <dependency> 66 <groupId>org.springframework</groupId> 67 <artifactId>spring-context-support</artifactId> 68 <version>4.3.8.RELEASE</version> 69 </dependency> 70 <dependency> 71 <groupId>org.springframework</groupId> 72 <artifactId>spring-oxm</artifactId> 73 <version>4.3.8.RELEASE</version> 74 </dependency> 75 <dependency> 76 <groupId>org.springframework</groupId> 77 <artifactId>spring-tx</artifactId> 78 <version>4.3.8.RELEASE</version> 79 </dependency> 80 <dependency> 81 <groupId>org.springframework</groupId> 82 <artifactId>spring-test</artifactId> 83 <version>4.3.8.RELEASE</version> 84 </dependency> 85 <dependency> 86 <groupId>org.springframework</groupId> 87 <artifactId>spring-jdbc</artifactId> 88 <version>4.3.8.RELEASE</version> 89 </dependency> 90 <dependency> 91 <groupId>org.aspectj</groupId> 92 <artifactId>aspectjweaver</artifactId> 93 <version>1.8.10</version> 94 </dependency> 95 <dependency> 96 <groupId>org.aspectj</groupId> 97 <artifactId>aspectjrt</artifactId> 98 <version>1.8.10</version> 99 </dependency> 100 <!-- 支持jsp相关包 --> 101 <dependency> 102 <groupId>javax.servlet</groupId> 103 <artifactId>jstl</artifactId> 104 <version>1.2</version> 105 </dependency> 106 <dependency> 107 <groupId>taglibs</groupId> 108 <artifactId>standard</artifactId> 109 <version>1.1.2</version> 110 </dependency> 111 <!--servlet/jsp api start--> 112 <dependency> 113 <groupId>javax.servlet</groupId> 114 <artifactId>servlet-api</artifactId> 115 <version>3.0-alpha-1</version> 116 </dependency> 117 <dependency> 118 <groupId>javax.servlet.jsp</groupId> 119 <artifactId>jsp-api</artifactId> 120 <version>2.2.1-b03</version> 121 </dependency> 122 <dependency> 123 <groupId>org.projectlombok</groupId> 124 <artifactId>lombok</artifactId> 125 <version>1.16.16</version> 126 </dependency> 127 <!-- Mybatis管理 start --> 128 <dependency> 129 <groupId>org.mybatis</groupId> 130 <artifactId>mybatis</artifactId> 131 <version>3.4.1</version> 132 </dependency> 133 <dependency> 134 <groupId>org.mybatis</groupId> 135 <artifactId>mybatis-spring</artifactId> 136 <version>1.3.0</version> 137 </dependency> 138 <dependency> 139 <groupId>com.alibaba</groupId> 140 <artifactId>fastjson</artifactId> 141 <version>1.2.33</version> 142 </dependency> 143 </dependencies> 144 145 <build> 146 <finalName>test.maven</finalName> 147 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> 148 <plugins> 149 <plugin> 150 <artifactId>maven-clean-plugin</artifactId> 151 <version>3.0.0</version> 152 </plugin> 153 <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> 154 <plugin> 155 <artifactId>maven-resources-plugin</artifactId> 156 <version>3.0.2</version> 157 </plugin> 158 <plugin> 159 <artifactId>maven-compiler-plugin</artifactId> 160 <version>3.7.0</version> 161 </plugin> 162 <plugin> 163 <artifactId>maven-surefire-plugin</artifactId> 164 <version>2.20.1</version> 165 </plugin> 166 <plugin> 167 <artifactId>maven-war-plugin</artifactId> 168 <version>3.2.0</version> 169 </plugin> 170 <plugin> 171 <artifactId>maven-install-plugin</artifactId> 172 <version>2.5.2</version> 173 </plugin> 174 <plugin> 175 <artifactId>maven-deploy-plugin</artifactId> 176 <version>2.8.2</version> 177 </plugin> 178 </plugins> 179 </pluginManagement> 180 </build> 181 </project>