配色: 字号:
Maven搭建(使用自带框架)
2016-10-18 | 阅:  转:  |  分享 
  
Maven项目创建步骤:

new一个新项目:本文档叙述使用自带框架:(如下图)

生成后的目录:



生成后的pom.xml:

创建Maven项目格式:

注意:Sourcefolder是存放源文件的文件夹Sourcefolder

http://www.cnblogs.com/slowly-keeping/archive/2012/04/23/2466054.html

package:当你在建立一个package时,它自动建立到sourcefolder下,也只能建立在这个目录之下.

sourcefolder:存放java源代码的文件夹,当然也包括一些package文件夹,还可以包含其他文件.?项目构建后,sourcefolder里面的java自动编译成class文件到相应的/web-inf/classes文件夹中,其他文件也会移到/web-inf/classes相应的目录下.

package和sourceFolder比较

相同之处:package下除了java文件也可以包含其他文件,而且编译、打包后的文件路径与sourcefolder下的文件路径有一样规则

不同之处:1.sourceFolder靠"/"来进行上下级划分,package靠“.”来进行上下级划分。

?2.sourcefolder下能建package,而package下不能建sourcefolder

?3.java文件中的package属性是按package路径来进行赋值的,sourcefolder路径不参与java文件的

package属性赋值,再由第二条不同得到结论,所有sourcefolder下的java文件package属性都为空。

folder:里面可以放入任何文件.包括java源文件,jar文件,其他文件(例如,图片,声音等).在此我说明一下,

如果里面含有java源文件,不管程序是否正确,eclipse都不会报错,把它们当做普通文件处理.但是项目如果

要使用这里面的文件,情况就不同了.

package,sourcefolder,folder之间相互转换

package转成folder显示:选中package,buildpath->Exclude

folder转成package显示:选中folder,buildpath->Include



package转成sourcefolder显示:选中package,buildpath->UseasSourcefolder

sourcefolder转成package显示:选中folder,buildpath->RemovefromBuildPath







注意:src/main/java,src/main/resources,src/test/java,src/test/resources更改class路径

更改















把项目变成DynamicWeb项目?









启动tomcat后运行

设置部署程序集(WebDeploymentAssembly)

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

(1)我们删除test的两项,因为test是测试使用,并不需要部署。

(2)设置将Maven的jar包发布到lib下。



构建框架在pom.xml中添加所需要的jar包

1)将jsf包全部添加进来junit、jstljar包

或者点击pom.xml直接编辑pom.xml文件,这样可以直接copy过来dependencies内容;



发布:启动工程

右键:RunAs->Maveninstall





访问页面404问题:



当eclipse发布到tomcat时,tomcat下没有jsp文件:

maven自动部署到tomcat的问题(指自动部署到服务器)

配置Tomcat访问权限

要打开tomcat的manager功能在conf文件夹下的tomcat-users.xml的标签内添加如下内容

????????????????????????????????

Maven添加jar包


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.zx.cn

springMVC

war

0.0.1-SNAPSHOT

springMVCMavenWebapp

http://maven.apache.org







junit

junit

3.8.1

test





org.springframework

spring-webmvc

4.1.4.RELEASE

jar





org.aspectj

aspectjweaver

1.7.4





commons-io

commons-io

20030203.000550





commons-logging

commons-logging

1.2





com.alibaba

dubbo

2.5.4-SNAPSHOT





javassist

javassist

3.10.0.GA





org.slf4j

jcl-over-slf4j

1.7.8





mysql

mysql-connector-java

5.1.29





org.springframework

spring-expression

4.1.6.RELEASE





org.springframework

spring-web

4.1.4.RELEASE

jar





org.springframework.web

servlet

3.0.5.RELEASE

pom.lastUpdated





org.slf4j

slf4j-api

1.7.8





org.slf4j

slf4j-log4j12

1.7.5





org.springframework

spring-aop

4.1.6.RELEASE





org.springframework

spring-context

4.1.6.RELEASE





org.springframework

spring-jdbc

4.1.4.RELEASE

jar





org.springframework

spring-test

4.1.4.RELEASE

jar





org.springframework

spring-tx

4.1.6.RELEASE





com.github.sgroschupf

zkclient

0.1





org.apache.zookeeper

zookeeper

3.4.3

jar





io.netty

netty

3.5.2.Final

jar





log4j

log4j

1.2.17

jar







com.sun.jmx

jmxri





com.sun.jdmk

jmxtools





javax.jms

jms









javax.servlet

javax.servlet-api

3.1.0











springMVC





大约这么多jar包

Maven中log4j的jar问题原因是log4j在1.2.15及以上版本更换了协议,与jms冲突。解决办法有两种:一是使用1.2.14版本,二是手动下载jms.jar,安装到maven本地仓库中去



注意:type类型是jar,版本问题,还有就是是否重复引用了包。

这个问题是:因为web.xml中的配置spring核心servlet中的名称不是项目名称锁报的错误

mybatisgeneratoreclipse插件的安装(自动创建代码)(顺序自行安排)

下载MyBatisGenerator解压包,里面有两个文件夹:将此两个文件夹放到eclipse的安装根目录上覆盖原先的文件即可。

重启eclipse:右击->new->orther如图:classPathEntry????location:驱动地址,放入数据库对应的jdbc驱动jar路径(绝对路径)

jdbcConnection??driverClass:驱动类(如oracle.jdbc.driver.OracleDriver),connectionURL:jdbc链接串(如jdbc:oracle:thin:@192.168.1.188:1521:xxx"),userId:数据用户名,password:数据库密码

javaModelGenerator?targetPackage:生成的pojo放入的包,targetProject:生成的pojo放入的项目(对应工作空间的项目)

sqlMapGenerator??targetPackage=生成的sql对应的包?targetProject:生成的sql接口对应的项目

javaClientGenerator?targetPackage:生成的dao接口对应的包?targetProject:生成的dao接口对应的项目?type:映射文件类型,一般为XMLMAPPER

table:tableName:需要生成的表名,domainObjectName:生成的pojo名,为空则对应数据库表名

org.springframework

spring-webmvc

3.0.5.RELEASE





springMVC在初始化的时候,会去找-servlet.xml这个结尾文件。(这是他的规则)这个文件必须放在WEB-INF目录下

在web.xml中配置spring项目必须要加载spring配置文件



WEB.XML:





dispatcher

org.springframework.web.servlet.DispatcherServlet





加载/WEB-INF/spring-mvc/目录下的所有XML作为SpringMVC的配置文件

contextConfigLocation

/WEB-INF/spring-mvc/.xml



1

















org.springframework.web.context.ContextLoaderListener







spring

org.springframework.web.servlet.DispatcherServlet

1



整个web.xml配置





SpringMVC



index.jsp









dispatcher

org.springframework.web.servlet.DispatcherServlet





加载/com/mvc/res/目录下的所有XML作为SpringMVC的配置文件

contextConfigLocation

classpath:/com/mvc/res/Spring-.xml



1

















org.springframework.web.context.ContextLoaderListener







springMVC

org.springframework.web.servlet.DispatcherServlet

1











springMVC

/





springMVCXML配置



配置

新建class文件



测试证明,此处的包路径要与pom.xml中的一致,才能正常创建文件夹!

Maven测试

右击pom.Xml选择RunAs->Maventest



报此错的原因是:junit版本太低的原因!将version版本改成4.9版本即可!

再次运行即可成功了!

右击pom.Xml选择RunAs->install(打包运行)



Maven命令

Process-resources:复制主资源文件到主输出目录

Compile:编译主代码到主输出目录

Process-test-resources:复制测试资源文件到测试输出目录

Test-compile:编译测试代码到测试输出目录

Test:执行测试用例

Package:创建项目jar包

Install: 将项目输出构件安装到本地仓库

Deploy:将项目输出构件部署到远程仓库

普通项目导入Maven项目报错







解决方案:

原因是使用的普通的导入工程的问题,改为Maven项目导入





Maven项目改造成非maven项目

创建maven子项目:













packagecom.zz.com.test123;



importjavax.servlet.ServletContext;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpSession;

/

ServletimplementationclasshelloServler

/

publicclassHelloServlerextendsHttpServlet{

publicvoidshow(HttpServletRequestrequest){

System.out.println("show");

HttpSessionsession1=request.getSession();

ServletContextContext=session1.getServletContext();

ServletContextContext1=Context.getContext("/TestManger");

if(Context1!=null&&!Context1.equals("")){

HttpSessionsess=(HttpSession)Context1.getAttribute("session");

System.out.println(sess.getAttribute("userName"));

System.out.println(sess.getAttribute("passWord"));

}

}

}




xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.zz.com

test123

0.0.1-SNAPSHOT

jar

test123

http://maven.apache.org





UTF-8







junit

junit

3.8.1

test







javax.servlet

servlet-api

2.5









创建maven主项目:





选取web项目:





将maven项目构建后,添加src/main/java等四个文件包(处于规范)



Jsp页面:



<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"://"

+request.getServerName()+":"+request.getServerPort()

+path+"/";

%>









登陆页面































用户名:
密码:








实现方法:



importjava.io.IOException;

importjavax.servlet.ServletContext;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;



importcom.zz.com.test123.HelloServler;



/

ServletimplementationclasshelloServler

/

publicclassHelloTestextendsHttpServlet{

privatestaticfinallongserialVersionUID=1L;



/

@seeHttpServlet#HttpServlet()

/

publicHelloTest(){

super();

//TODOAuto-generatedconstructorstub

}



/

@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)

/

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

System.out.println("doGet");



}



/

@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)

/

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//

System.out.println("123");

response.setContentType("text/html;charset=GB2312");

StringuserName=request.getParameter("userName");

StringpassWord=request.getParameter("passWord");

System.out.println("userName="+userName+"passWord="+passWord);

request.getSession().setAttribute("userName",userName);

request.getSession().setAttribute("passWord",passWord);

ServletContextContextA=request.getSession().getServletContext();

ContextA.setAttribute("session",request.getSession());



HelloServlerh=newHelloServler();

h.show(request);

}

}

Pom.xml配置文件:




xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.zz.com

TestManger

war

0.0.1-SNAPSHOT

TestMangerMavenWebapp

http://maven.apache.org







com.zz.com

test123

0.0.1-SNAPSHOT







junit

junit

3.8.1

test







javax.servlet

servlet-api

2.5









TestManger





Web.xml







TestManger



login.jsp







HelloTest

HelloTest

HelloTest





HelloTest

.do





改造后的非maven项目:

将pom.xml去掉,将jar包放到WebContent下的WEB-INF的lib包下(新建lib包)将之前的web.xml跟jsp都放进此处。(tomcat的默认路径)



若没有tomcat的配置,要自行添加:

























献花(0)
+1
(本文系樱梦雪苹宝首藏)