linkinFrame--用maven搭项目结构
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搭项目结构的更多相关文章
- (二)maven之项目结构
我们可以看一下Maven项目的大致结构: 项目结构: src/main/java:java源代码文件目录. src/main/resources:资源库,会自动赋值到classes目录里,像 ...
- Maven 标准项目结构
项目结构 src main java 源文件 resources 资源文件 filters 资源过滤文件 config 配置文件 scripts 脚本文件 webap ...
- maven的项目结构
1.标准目录结构: src -main –bin 脚本库 –java java源代码文件 –resources 资源库,会自动复制到classes目录里 ...
- 定义maven的项目结构
创建一个Maven 的父项目 新建一个maven项目,选中create a simple project 填写以下内容: 如下内容: Group Id :edu.zipcloud.cloudstree ...
- Maven:项目结构
目录结构图: project |- src |- main //工程源代码目录 |- java //工程java源代 ...
- 主要介绍JavaEE中Maven Web 项目的结构及其它几个小问题
先说下本篇随笔的目录. 1.介绍windows中环境变量Path与ClassPath的区别. 2.可能导致命令行运行javac编译成功,但 java命令 + 所要执行的类的类名 无效的原因. 3.介绍 ...
- javaweb的maven项目结构
本来准备看javaweb的项目结构,因为之前自己建maven的项目结构,总是各种出错,后来干脆用maven自己携带的项目结构. 一个最基本的web目录结构如下,红框部分为必须有的,其他的随意. 这是一 ...
- Maven下Java、JavaWeb约定标准项目结构
1.Maven Java 项目结构: 2.Maven JavaWeb 项目结构: 注意:webapp下必须要有WEB-INF文件夹,WEB-INF文件夹下必须要有web.xml 跟 classes文件 ...
- IntelliJ IDEA使用(一):创建maven web项目
在公司用eclipse开发maven web项目后,慢慢开始明白大家的那句话"受不了eclipse".的确,在开发大型的web项目,尤其是maven构建的项目,eclipse很不友 ...
随机推荐
- java中碰到无法解决的问题:无法访问类的getter访问器
大牛们来看看,俺这是咋了?因博问不让发图,发到这里求助: 以上两个方法都是从mysql中select数据,为嘛第二个出现辣鸡报错? 请注意: reslist.size() = 289 第二种方法已经获 ...
- 前端js之JavaScript
知识预览 一小知识 二 JavaScript的基础 BOM对象 DOM对象 实例练习 js拓展 小知识 核心(ECMAScript) 文档对象模型(DOM) Document object model ...
- 如何搞定SVN目录的cleanup问题和lock问题
最近在使用SVN的时候碰到一个问题,就是操作时由于粗心大意,在更新的过程中点击取消,使得该目录出现cleanup的操作提示. OK,按照cleanup提示操作后,又提示目录被lock... 网上有解决 ...
- 如何使用 Q#
Q# 是微软的量子语言,很厉害,所以本文告诉大家如何入门,如何配置. 介绍 很多新的计数机技术都在很多年前就有人提出,量子计算就是其中一个.量子计算在 1980 年就被 Richard Feynman ...
- Python中function(函数)和methon(方法)的区别
在Python中,对这两个东西有明确的规定: 函数function —— A series of statements which returns some value to a caller. It ...
- html页面的音频问题
导火线 : 负责了项目中的话务间模块,处理音频出了一点问题 之前的处理 : //循环播放声音 var dialAudioDocument = document.createElement('audio ...
- Kubernetes 架构(下)- 每天5分钟玩转 Docker 容器技术(121)
上一节我们讨论了 Kubernetes 架构 Master 上运行的服务,本节讨论 Node 节点. Node 是 Pod 运行的地方,Kubernetes 支持 Docker.rkt 等容器 Run ...
- DNS Prefetch初认识
今天在看一个后台框架时,发现这样的代码: <link rel="dns-prefetch" href="//0.s3.envato.com">< ...
- vue-cli完整地引入element-ui
1因为该组件会依赖于jQuery,所以先安装jQuery所需依赖: 进入npm控制台,输入指令: cnpm install jquery --save-dev 然后在入口文件main.js中引入: i ...
- 在mac下使用终端命令通过ssh协议连接远程linux系统,代替windows的putty
指令:ssh username@server.address.com 事例:wangmingdeMacBook-Pro:~ xxxxxxxxxx$ ssh root@XXXX.net The auth ...