OK,老早想写一套自己的web框架,然后也一直在看开源的一些框架源码。今天开始正式开始写自己的javaWeb框架,暂时就定义linkinFrame好了。



为什么要写一套自己的框架?

其实这是一个比较矛盾的问题,一般的我们很少有时间说自己去写一套,自己写的一套也没有经过严格的单元测试,甚至是在设计上功能上和开源的一些框架也差距太大,实际中根本不可能有用武之地。说白了,就是不会有人使用,除非是自己折腾玩玩。所以我这里写这个框架,只是为了自己更多的尝试开源,然后更多的理解那些成熟的思想和技术,到不了说觉得开源不够用,或者说开源太重太臃肿而自己舍弃来用自己的。

当然我会尽量的写的完美一点,这里说明下这个框架的相关的使用到的工具和技术。

1,项目用maven管理,关于maven的整理我还没有整理完全,后续也会补齐来。具体的可以去看我的maven系列。

2,版本工具使用git管理,以后要养成良好的习惯,严格的使用好版本工具,我这里暂时用coding来做code仓库。

3,实现J2e常使用到的技术,IOC,AOP,ORM,安全,事务。

4,框架的优化和扩展,在最后要使得该框架具有良好的扩展性。



在这期间我会参照一些开源的成熟的框架的源码来补充和优化自己的框架源码,希望早日完成。



OK,那我们现在开始来一步吧,使用maven来搭好框架结构。



1,创建项目

我使用的eclipse作为项目的IDE,一年前就有朋友强烈推荐JADE,但是自己对eclipse感情深厚,所以一直没有换。

直接使用eclipse的maven插件来生成一个简单的Javaweb工程,然后修改相关目录结构使项目成为标准maven项目。

项目结构图如下:



2,设置POM文件

生成项目之后,要设置maven相关依赖。这里我添加一些junit的依赖和j2e servlet的依赖,然后修改Java编译版本,修改maven的test插件和jar插件,这样子maven打包出来的就是2个war,一个是源码,一个是测试。

下面是目前简单的项目POM文件:

<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">
<modelVersion>4.0.0</modelVersion> <groupId>org.linkinpark.commons</groupId>
<artifactId>linkin-frame-javaweb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging> <name>linkin-frame-javaweb</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<!-- <verbose>true</verbose> <fork>true</fork> <executable>path-to-javac </executable> <compilerVersion>1.3</compilerVersion> -->
</configuration>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>plain</id>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<runOrder>random</runOrder>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build> <dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.4</version>
<scope>test</scope>
</dependency>
<!-- j2e servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>

3,测试项目结构

OK,现在我们来测试一下,我自己随便写一个源码类,写一个测试类,然后运行maven clean package,生成了2个war包,反编译一下,没有问题。具体看下图:

  









linkinFrame--用maven搭项目结构的更多相关文章

  1. (二)maven之项目结构

    我们可以看一下Maven项目的大致结构:      项目结构: src/main/java:java源代码文件目录. src/main/resources:资源库,会自动赋值到classes目录里,像 ...

  2. Maven 标准项目结构

    项目结构 src main java         源文件 resources    资源文件 filters   资源过滤文件 config   配置文件 scripts   脚本文件 webap ...

  3. maven的项目结构

    1.标准目录结构: src -main       –bin 脚本库       –java java源代码文件       –resources 资源库,会自动复制到classes目录里       ...

  4. 定义maven的项目结构

    创建一个Maven 的父项目 新建一个maven项目,选中create a simple project 填写以下内容: 如下内容: Group Id :edu.zipcloud.cloudstree ...

  5. Maven:项目结构

    目录结构图: project        |- src            |- main   //工程源代码目录                |- java        //工程java源代 ...

  6. 主要介绍JavaEE中Maven Web 项目的结构及其它几个小问题

    先说下本篇随笔的目录. 1.介绍windows中环境变量Path与ClassPath的区别. 2.可能导致命令行运行javac编译成功,但 java命令 + 所要执行的类的类名 无效的原因. 3.介绍 ...

  7. javaweb的maven项目结构

    本来准备看javaweb的项目结构,因为之前自己建maven的项目结构,总是各种出错,后来干脆用maven自己携带的项目结构. 一个最基本的web目录结构如下,红框部分为必须有的,其他的随意. 这是一 ...

  8. Maven下Java、JavaWeb约定标准项目结构

    1.Maven Java 项目结构: 2.Maven JavaWeb 项目结构: 注意:webapp下必须要有WEB-INF文件夹,WEB-INF文件夹下必须要有web.xml 跟 classes文件 ...

  9. IntelliJ IDEA使用(一):创建maven web项目

    在公司用eclipse开发maven web项目后,慢慢开始明白大家的那句话"受不了eclipse".的确,在开发大型的web项目,尤其是maven构建的项目,eclipse很不友 ...

随机推荐

  1. 史上最简单的js+css3实现时钟效果

    今天我看到百度搜索的时间那个效果不错,于是就产生了模仿一下的效果,不过为了节省时间,就随便布了下局,废话不多说,先看看效果吧,顺便把百度的效果也拿过来. 对比样子差了好多啊,但是基本功能都是实现了的, ...

  2. 【LCT】BZOJ3091 城市旅行

    3091: 城市旅行 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1927  Solved: 631[Submit][Status][Discuss ...

  3. SSM框架实现分页

    SSM框架实现分页 1,.首先创建一个分页的工具类 package cn.page.po; import java.io.Serializable; public class Page impleme ...

  4. SharePoint客户端js对象模型

    'use strict'; var context = SP.ClientContext.get_current(); var user = context.get_web().get_current ...

  5. 循序渐进之Spring AOP(3) - 配置代理

    上一篇介绍了几种Advice(增强),并通过代码演示了生成代理的方式,下面来看通过配置文件配置方式把Advice织入目标类. 注意,配置文件方式仍然不是spring AOP的最好方式,学习配置方式也是 ...

  6. Android应用程序使用两个LinearLayout编排5个Button控件

    学习存档: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi ...

  7. 持续更新:从零开始的php学习生活

    其实也不是真的从零开始,在此之前我还是一边研究博学(博客美化)一边学的CSS.HTML.JavaScript的,相关内容可以戳这里. 看本文之前你最好稍微熟悉一下HTML.JavaScript什么的. ...

  8. webpack + babel

    webpack设计思想:不区分.png .css .js 等文件,都视为一个模块.通过require导入,loader加载器编译之后打包在一个主js文件里. 优势:减少http请求. 1. webpa ...

  9. SpringMVC整合Shiro权限框架

    尊重原创:http://blog.csdn.net/donggua3694857/article/details/52157313 最近在学习Shiro,首先非常感谢开涛大神的<跟我学Shiro ...

  10. android studio无法识别含有rcs包名的jar

    http://blog.csdn.net/JingleYe/article/details/70048943     android studio无法识别含有rcs包名的jar android stu ...