设为首页 收藏本站
查看: 871|回复: 0

[经验分享] Java web项目

[复制链接]

尚未签到

发表于 2017-3-2 10:51:41 | 显示全部楼层 |阅读模式
  前言
  本文目标:使用eclipse为IDE环境搭建一个基于maven的web项目,讲解搭建过程,项目结构,程序运行、调试和测试过程,并使用maven作为持续集成工具。
  面向对象:转型java的.net开发人员
  知识点:eclipse,maven,jfinal,jetty,tomcat,junit
  环境准备
  Maven

  • 安装maven-3.3.9, 建议3.0+版本
  • 检查安装版本,命令行输入: mvn -version
DSC0000.png

  Tomcat

  • 下载tomcat-v7,解压到本地。
  Eclipse


  • 安装eclipse-neon版本。请确保安装了图示中的插件。
    DSC0001.png


  • 配置maven
    DSC0002.png

  • 配置server
DSC0003.png

  创建项目
  使用eclipse创建基于maven的web项目
  略
  使用maven在命令行创建web项目


  • 创建web项目:


    • 执行命令: mvn archetype:generate,控制台显示如下消息后将无反应(原因:mvn尝试列出服务器所有的项目模板,类型太多且访问maven仓库太慢导致,为什么太慢?你懂的,防火长城)
      DSC0004.png

    • 添加参数使mvn只列出本机的模板:-DarchetypeCatalog=internal
    • 模板还是很多,建议增加参数,例如要创建web项目,可用参数 -Dfilter=web
    • 确定了模板类型后,可直接在参数指定模板:-DarchetypeArtifactId=maven-archetype-webapp
    • mvn默认使用交互模式,可参数指定为非交互模式:-DinteractiveMode=false

    • 创建网站项目(包名com.demo,项目名websample)的完整命令:mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.demo -DartifactId=websample -DinteractiveMode=false -DarchetypeCatalog=internal
      DSC0005.png

    • 查看编译、测试、打包效果,命令: mvn compile test package

    • 生成eclipse项目的相关文件(.project,.classpath),

      • 进入项目目录,命令:cd websample
      • 执行命令:mvn eclipse:eclipse


    • 其他

      • 网上案例大多没有没有设置参数 -DarcheypeCatalog,由于国情原因,基本都卡在了 a)。
      • 即使指定了模板也要设置 -DarchetypeCatalog参数,否则还是卡在a)。


  eclipse中打开项目
  eclipse中导入maven项目
  maven生成项目文件后导入


  • 生成eclipse项目的相关文件(.project,.classpath),

    • 进入项目目录,命令:cd websample
    • 执行命令:mvn eclipse:eclipse


  • eclipse中导入

    • DSC0006.png


  • 编译错误处理, Makers窗口提示错误


    • The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path  解决方法:

      • Right Click on Project
      • Select Properties
      • Select Project Facets
      • Select Apache Tomcat as Runtime server
      • Click OK


  注意事项

  • 导入项目(java世界叫构件)名称不能和工作区中已有构件同名。(pom.xml中的artifactId节点值)
  源码开发
  参考JFinal手册添加MVC结构的源码。

  • 修改项目编译输出目录到src/main/webapp/WEB-INF/classes(maven默认是target/classes)
  • 修改pom.xml文件,添加依赖。
  • 修改web.xml文件,指定过滤器。

  • 添加java文件

    • 创建java文件夹(maven结构中源码位置为src/main/java)。
    • 添加配置文件,DemoConfig.java文件,继承JFinalConfig。
    • 添加控制器文件,HelloController.java文件。

  运行调试
  JFinal手册中有2种运行方式


  • App运行【Java Application】

    • 该方式依赖jetty,一种轻量级、嵌入式的servle容器。


  • 部署到server运行【Run on Server】

    • 建议直接使用tomcat目录配置,注意修改端口不要被占用导致无法启动

DSC0007.png

  JFinal测试扩展jfinal-ext

  • 该扩展不支持jfinal-2.1+,该版本重构中修改了logger类,其他不兼容未知。
  • 开源软件的升级兼容性很差
  使用junit编写单元测试
  Junit3 vs Junit4

  • maven模板创建项目中默认依赖junit3
  • eclipse默认的单元测试插件使用junit4

  • Junit3.8对测试代码的要求

    • public的。
    • void的。
    • 无方法参数。
    • 方法名称必须以test开头

  • 两者使用上区别很大,v4采用了更简洁Annotation特性(java5)简化测试代码
  添加测试代码
  Junit3测试代码
  import junit.framework.TestCase;
  import static org.junit.Assert.*;
  public class AddOperationTest extends TestCase{
       public void setUp() throws Exception {
        }
        public void tearDown() throws Exception {
        }
        public void testAdd() {assertEquals(expResult, result);}
  }
  Junit4测试代码
  import junit.framework.TestCase;
  import org.junit.After;
  import org.junit.Before;
  import org.junit.Test;
  import static org.junit.Assert.*;
  public class AddOperationTest extends TestCase{
  @before
       public void setUp() throws Exception {}
  @after
       public void tearDown() throws Exception {}
      @test
       public void testAdd() {assertEquals(expResult, result);}
  }
  maven中的单元测试,

  • 命令: mvn test
  eclipse中的单元测试


  • 上述步骤中修改了Java Build Path的默认输出文件夹为src/main/webapp/WEB-INF/classes,此处需要对test源码目录做修改,使其输出到target/test-classes,保持和maven中一致
    DSC0008.png

  • 新建配置文件

  • 修改classpath,否则运行单元测试时会提示:Eclipse - java.lang.ClassNotFoundException

    • Open your run configurations
    • Click on the jUnit-Test you want to start
    • go to the classpath tab
    • Try to add a folder (click on user entries, click on advanced, click on add folders, click on ok and search the outputfolder for your test classes(those you find under projektproperties java build path, source))
    DSC0009.png


  web程序打包

  • 命令:mvn package
  • 上述命令将target/目录下输出websample.war及websample文件夹。
  • websample.war包含了项目所需的所有文件
  持续集成
  持续集成实践

  • 只维护一个源码仓库
  • 自动化构建
  • 让构建自行测试
  • 每人每天向主干提交代码
  • 每次提交都应在持续集成机器上构建主干
  • 保持快速的构建
  • 在模拟生产环境中测试
  • 让每个人都能轻易获得最新的可执行文件
  • 每个人都能看到进度
  • 自动化部署
  扩展阅读
  maven与eclipse的关系
DSC00010.png

  参考资料

  • Creating Simple Web Application Using Apache Maven
  • 如何用Maven创建web项目(具体步骤)
  • 将 Maven生成的java项目转化为支持 Eclipse IDE的项目
  • 在 Eclipse 中利用 Maven
  • 基于Maven的持续集成实践
  • JUnit4 详解

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-349215-1-1.html 上篇帖子: Spark开发环境搭建 下篇帖子: 全文搜索引擎Solr工具使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表