src man java 分开了_Java Spring MVC入门(四)使用Maven创建项目

本文介绍了在多人协作开发Java Spring MVC项目时,如何使用Maven解决jar包版本不一致的问题。Maven是一个项目管理工具,可以方便地管理依赖、测试、编译和打包。通过配置pom.xml文件,Maven能自动下载并统一团队成员的jar包版本,避免手动下载和拷贝。此外,文章还详细讲解了如何在Eclipse中创建和配置Maven项目,包括设置源代码目录、调整构建路径、配置pom.xml文件以及web.xml文件,最终实现了一个简单的"Hello World"应用。
摘要由CSDN通过智能技术生成

使用普通方式创建项目的问题

前几篇文章中,我们使用普通方法在eclispe上创建了项目,并成功的运行了helloworld文件,那么普通方法创建的项目在多人协作开发项目的时候,可能会有下面问题

1、多人协作时候各成员所使用的jar包版本可能不一致,比如:张三下载的版本是3.2,而李四下载的版本是4.2 ,服务器上的版本是4.3,这样可能导致在本地运行正常,而在服务器上运行却有可能出现问题。

2、需要从网上去搜索自己所需要的依赖包,如果想要团队协作保证各个成员的jar包保持一致,需要来回的拷贝jar包。

什么是Maven

普通方式创建项目有上面所说的不足之处,还好我们有Maven可以解决上面的问题,那么什么Maven? (官网: http://maven.apache.org/index.html)

在这里我只能简单的介绍,让大家有个感性上的认识。

Maven是一个管理项目的工具,可以方便的管理项目的jar包依赖、测试、编译、打包、发布。

1、管理jar包依赖

这个功能可能是Maven最突出的特点,大家不用再去网上单独下载jar包,而是在pom.xml里配置jar包的依赖关系,具体看下面例子:

org.springframework

spring-aop

3.2.4.RELEASE

org.springframework

spring-core

3.2.4.RELEASE

大致解释下几个配置项的意思:

groupId:所述的项目名称,由于有的项目并不是一个jar包构成的,而是由很多的jar包组成的。因此这个groupId就是整个项目的名称。

artifactId:包的名称。

version:版本号。

packaging:包的类型,一般都是jar,也可以是war之类的。如果不填,默认就是jar。

大家可以看到每个jar包配置项内都有版本号,这样团队开发时候大家只要保证pom.xml一致,那么Maven就会自动下载pom.xml配置项内的包,这样既不用自己下载,又保证了团队内各个成员下载jar包的版本都一样。

2、其他功能

Maven除了管理依赖包之外,还可以编译、测试、打包项目,具体命令如下:

mvn archetype:create 创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

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

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

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

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvn jetty:run 启动jetty服务

mvn tomcat:run 启动tomcat服务

mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

如果想要更加深入了解Maven请看:

Eclipse建立Maven项目

1、打开eclispe 选择Fire-> New -> Maven Project

84452ba000665d8e0bf723af846c70c3.png

2、在弹框内填写选项

793a27f755ecb99a2d671796deacd78c.png

b46b42e73736dcd78a21ea33c91b7b10.png

GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。

ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

Version是版本号,这个自己写了。

f7e0e503fc8b69e0c6831e53e199395a.png

填写完成点击“Finish”。项目建好之后如下:

b1e9c5d6f95166060a52b8e5f00bd15f.png

到这里项目已经基本成型,但是还没有完成,还要稍做配置,我们首先右击项目名->Build Path ->Configure Build Path..

369de76bc826054a43e95193d5470740.png

851357e28889afe791787da5dc0375d4.png

把两个"missing"的项"Remove"掉,之后点"OK"。之后右击Java Resources -> New -> Source Folder

61ada4d9de981406b8f50e6dee604ac7.png

新增Source Folder

135374cd5ac7e5d4e0a828c8ba3d6d7c.png

建立三个Source Folder

src/main/java

src/test/java

src/test/resources

完成之后如下:

0feb2dc0b0241c20f4d39028627ffd38.png

之后再进入Java Build Path->Libraries标签,选中 JRE System Library[J2SE-1.5],点击 Edit

7af7491386f3ab7f1351e05ddab5ac63.png

选择下图选项:

0cf7fb16eb58b4593e1fc488ec8802ae.png

接下来还要处理下排列顺序,进入Java Build path ->Order and Export

5e3a0a913eeaacdd4ce69e7a731d411a.png

利用"Up" 和 "Down"将顺序调整成和上图一样。

最后还要设置部署程序集,右键项目名->Properties->Deployment Assembly,

此处列表是,部署项目时,文件发布的路径。

我们删除test的两项,因为test是测试使用,并不需要部署。见下图:

b057c275d5e203f352a9326e60dc2b60.png

完成之后应该是下面这样

c0c9163f4c3a96bcfb8907e3f93ea6a7.png

OK,终于完成了。

配置文件pom.xml

主要是要配置spring框架的一些依赖包,再就是和数据库相关的包,具体内容如下:

4.0.0

com.mavenPro

demo

war

1.0

demo Maven Webapp

http://maven.apache.org

org.springframework

spring-aop

3.2.4.RELEASE

org.springframework

spring-core

3.2.4.RELEASE

org.springframework

spring-context

3.2.4.RELEASE

org.springframework

spring-context-support

3.2.4.RELEASE

org.springframework

spring-aspects

3.2.4.RELEASE

org.springframework

spring-orm

3.2.4.RELEASE

org.springframework

spring-jdbc

3.2.4.RELEASE

org.springframework

spring-jms

3.2.4.RELEASE

org.springframework

spring-webmvc

3.2.4.RELEASE

org.springframework.security

spring-security-ldap

3.2.4.RELEASE

org.springframework

spring-test

3.2.4.RELEASE

provided

com.googlecode.ehcache-spring-annotations

ehcache-spring-annotations

1.2.0

org.springframework.data

spring-data-mongodb

1.5.4.RELEASE

org.springframework.data

spring-data-redis

1.2.0.RELEASE

javax.servlet

javax.servlet-api

3.0.1

junit

junit

3.8.1

test

mavenDemo

文件里有一些注释,初学者先大致了解,今后会详细介绍。

配置文件web.xml

demo

contextConfigLocation

classpath:demo-root-servlet.xml

log4jExposeWebAppRoot

false

characterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

characterEncodingFilter

/*

gameLiveServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:demo-servlet.xml

1

gameLiveServlet

/

org.springframework.web.util.Log4jConfigListener

org.springframework.web.context.ContextLoaderListener

注释写的有点多,大家要仔细看,这里重点说下我踩过的坑:

这里我曾经遇到一个坑,这里说出来告诉大家。

大家先看内有个里面也有一个contextConfigLocation配置

于是我自作聪明把最外层的删除,只保留内的配置,

结果运行时候报错说找不到classpath:demo-servlet.xml文件,此时系统会自动去找/WEB-INI/applicationContext.xml文件,

此时文件是不存在的所以也报错。

切记:如果要用classpath方式去定位配置文件,文件路径在最外层的配置一定要有,仅仅只写servlet内的配置是无法找到的。如果最外层不想写

只在servlet标签内定位spring配置文件,只能用/WEB-INI/文件名.xml这样的方式。

Spring容器加载web.xml的顺序为context-param >> listener  >> fileter  >> servlet

Spring配置文件

在上面的web.xml配置文件中我们有两个Spring的配置文件,分别是/src/man/resources/demo-root-serlvet.xml 和/src/man/resources/demo-servlet.xml

用classpath方式定位文件必须要放到/src/man/resources/下否则要放到/src/main/webapp/WEB-INF/ 路径下。

/src/man/resources/demo-root-servlet.xml 文件的主要用途为包含其他子配置文件,例如数据库配置文件、AOP配置文件。

/src/man/resources/demo-servlet.xml 文件主要是声明一些本项目用到的bean。

/src/man/resources/demo-root-servlet.xml 内容:

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd

http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"default-autowire="byName">

Spring公共配置

由于本次不涉及数据库内容,所以我将引入数据配置文件内容注释了。

/src/man/resources/demo-servlet.xml内容:

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd

http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"default-autowire="byName">

demo

Hello world

接下来我们就要写hello world 了,先在/src/main/java里建立一个包,再包内建立一个文件HelloWorld

92feaac8e22cdab4116b2870d354b352.png

e89f1049a5acc40cac9a70ff9802a0a0.png

HelloWorld.java内容如下:

packagecom.demo.game;importjava.io.IOException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;

@Controllerpublic classHelloWorld {

@RequestMapping("/hello")public void index(HttpServletRequest request, HttpServletResponse response) throwsIOException {

response.setHeader("content-type", "text/html;charset=UTF-8");

response.getWriter().append("hello World");

}

}

大家看到没有demo-servlet.xml配置文件里有一句:

将HelloWorld注册为一个bean , 这样就让他由一个普通类变成控制器了,接下来我们启动tomcat server ,再浏览器里输入http://localhost:8080/demo/hello

826532ea96bbb6fddd3041be27c38942.png

忙活了半天,hello world终于出来了,终于有点小小成就感!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值