友报账开发

友报账开发学习

1,友报账开发

前端技术:

后端技术:

相关技术:

2,友报账前端

2.1、前提条件

要想使用 Angular 框架,你要先熟悉下列技术:

JavaScript
HTML

前端项目结构

友报账开发

--.sourcemaps 这个目录不知道干嘛的

--node_modules 这个是npm安装依赖包、库的目录,与NCC一样

--plugins 插件模板?不知道存放什么插件,这些插件有什么用

--resources 应该是存放静态资源文件的

​ --android 安卓资源文件

​ --IOS ios资源文件

--src 前端angular源码文件夹

--www 前端代码编译打包后的文件夹,他们称之为三达不溜包

··.editorconfig文件

··config.xml 没看出来什么东西,都是些静态资源配置

··ionic.config.json

··package-lock.json

··package.json

··report.20200728.194803.18156.0.001.json

··tsconfig.json

··tslint.json

··yarn-error.log

3,友报账后端:

3.1远程调试:

进入友报账的docker,

找到,进入tomcat

编辑tomcat启动的文件startup.sh,

在头部加入

declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788" 

idea开发工具设置:

友报账开发

3.2后端目录结构:

友报账开发

整个工程是个多级模块,父模块ybz,对应各个子模块

<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>
	<parent>
		<groupId>com.yonyou.ybzboot</groupId>
		<artifactId>parent</artifactId>
		<version>1.2.1-SNAPSHOT</version>
	</parent>

	<groupId>com.yonyou</groupId>
	<artifactId>ybz</artifactId>
	<version>0.0.1-RELEASE</version>
	<packaging>pom</packaging>
	<description>友报账 重构</description>
	<modules>
		<module>common-pub</module>
		<module>base-doc</module>
		<module>third-party</module>
		<module>business-apply</module>
		<module>business-expense</module>
		<module>business-budget</module>
		<module>business-pay</module>
		<module>common-mq</module>
		<module>common-approve</module>
		<module>common-template</module>
		<module>common-print</module>
		<module>business-pub</module>
		<module>business-loan</module>
		<module>open-api</module>
		<module>all-in-one</module>
		<module>common-erp</module>
		<module>common-ocr</module>
        <module>business-accrued</module>
        <module>business-apphome</module>
        <module>business-rule</module>
    </modules>
	<!--具体依赖配置省略  -->
</project>

以子模块common-erp为例:

<?xml version="1.0" encoding="UTF-8"?>

<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">
    <parent>
        <artifactId>ybz</artifactId>
        <groupId>com.yonyou</groupId>
        <version>0.0.1-RELEASE</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <description>erp集成 - 姜世杰</description>
    <packaging>pom</packaging>
    <artifactId>common-erp</artifactId>
    <name>common-erp</name>

    <modules>
        <module>common-erp-pri</module>
        <module>common-erp-pri-nc</module>
        <module>common-erp-pub</module>
    </modules>

</project>

其中与NCC交互的孙子模块为:

<?xml version="1.0" encoding="UTF-8"?>

<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">
    <parent>
        <artifactId>common-erp</artifactId>
        <groupId>com.yonyou</groupId>
        <version>0.0.1-RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>common-erp-pri-nc</artifactId>

    <name>common-erp-pri-nc</name>

    <dependencies>
        <dependency>
            <groupId>com.yonyou</groupId>
            <artifactId>common-erp-pri</artifactId>
            <version>0.0.1-RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.yonyou</groupId>
            <artifactId>common-mq-pub</artifactId>
            <version>0.0.1-RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.yonyou</groupId>
            <artifactId>third-party-pub</artifactId>
            <version>0.0.1-RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.yonyou</groupId>
            <artifactId>open-api-pub</artifactId>
            <version>0.0.1-RELEASE</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>
</project>

3.3启动友报账后端本地环境

现在还不会,涉及到几个修改,修改本地环境配置文件,编译本地代码,各个模块打包install

略。。。

3.4 开发调试修改代码

3.4.1 搭好本地开发工程环境

1,代码同步,从git或svn拉代码下来后,导入idea;

2,先对*父工程ybz(root),进行install,编译代码,并且安装到本地maven库;

3,确定本地开发工程代码编译不报错!

3.4.2代码调试

代码调试功能开发可以打远程断点,然后修改本地代码,代码编译后生效;

3.4.3 本地代码合并:

简单说明:ncc补丁代码合并只需要与对应java代码做代码合并,然后对合并后的java类导出补丁即可;

友报账由于是使用开发spring技术开发的应用,且部署方式为docker,其项目代码全部为友报账docker镜像中的jar包,只做简单适配的换,需要下载对应的jar包,替换jar包中的.class代码;

步骤:

1,构建友报账后端工程,合并对应的java代码;

2,使用maven进行编译,从target中复制对应的class;

3,放到友报账环境中对应的jar中即可;

3.5后端开发(从git获取的教程)

3.5.1 工程简介

3.5.1.1 结构

工程是maven module结构,各module又分web、pri、pub三个project。
其中:
web 主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等
pri 主要是自身业务应用的实现,包括 service、dao等
pub 主要是服务接口 常量 工具类,用于自己和其他工程调用。
如:
ybz
----business-apply
--------business-apply-web
--------business-apply-pri
--------business-apply-pub

3.5.1.2 pub模块依赖关系:

1)base可以依赖common;
2)business可以依赖common、base;
3)business-apply、business-loan、business-expense可以依赖business-note;
4)third-party可以依赖所有模块

3.5.1.3 非pub模块依赖

1)各模块间的依赖只能通过pub依赖,即依赖common-pub或各模块*-pub

2) 内部有依赖其他模块dao的,通过在其他模块pub中添加service接口解决依赖关系

3) 模块内部pri、web各只能依赖pub,

3.5.1.4 模块工程结构

project
----src/main/java (java代码)
--------com.yonyou.ybz.模块.controller (controller内部禁止写业务逻辑,逻辑统一写在服务里service)
--------com.yonyou.ybz.模块.service
--------com.yonyou.ybz.模块.service.impl
--------com.yonyou.ybz.模块.dao
--------com.yonyou.ybz.模块.dao.mapping
--------com.yonyou.ybz.模块.pojo
----src/main/resources (配置文件)
--------develop(开发环境配置)
--------test(测试环境配置)
--------product(生产环境配置)
----src/test/java (测试用例)
----src/test/resources (测试配置文件)
----src/main/webapp (web工程的)
1)java文件放到 src/main/java, 配置文件放到src/main/resources(个性化配置放在对应目录develop、test、product)
2) 新建包 com.yonyou.ybz.模块名称.功能名称 如:com.yonyou.ybz.user.controller com.yonyou.ybz.user.service com.yonyou.ybz.user.mapper

3.5.2 开发规范

1 命名

1)类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO/ BO / DTO/ VO等
2)方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式
3)常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长
4)抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾
5)POJO类中布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误
6)接口以I开头,实现类以Impl结尾,如:IUserService、 UserServiceImpl
7)枚举类名建议带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开
8)Service/DAO层方法命名规约
a. 获取单个对象的方法用get做前缀
b. 获取多个对象的方法用list做前缀
c. 获取统计值的方法用count做前缀
d. 插入的方法用save(推荐)或insert做前缀
e. 删除的方法用remove(推荐)或delete做前缀
f. 修改的方法用update做前缀
9) 领域模型命名规约
a. 数据对象:xxxDO,xxx即为数据表名
b. 数据传输对象:xxxDTO,xxx为业务领域相关的名称
c. 展示对象:xxxVO,xxx一般为网页名称
d. POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO

2 常量定义

1)long或者Long初始赋值时,必须使用大写的L,不能是小写的l,小写容易跟数字1混淆,造成误解
2)不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护
3) 常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量
a. 跨应用共享常量:放置在二方库中,通常是client.jar中的constant目录下
b. 应用内共享常量:放置在一方库的modules中的constant目录下
c. 子工程内部共享常量:即在当前子工程的constant目录下
d. 包内共享常量:即在当前包下单独的constant目录下
e. 类内共享常量:直接在类内部private static final定义

3 格式规约

1)大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
a. 左大括号前不换行。
b. 左大括号后换行。
c. 右大括号前换行。
d. 右大括号后还有else等代码则不换行;表示终止右大括号后必须换行
2)左括号和后一个字符之间不出现空格;同样,右括号和前一个字符之间也不出现空格
3)任何运算符左右必须加一个空格
4)缩进采用4个空格
5)单行字符数限制不超过120个,超出需要换行,换行时遵循如下原则:
a. 第二行相对第一行缩进4个空格,从第三行开始,不再继续缩进.
b. 运算符与下文一起换行。
c. 方法调用的点符号与下文一起换行。
d. 在多个参数超长,逗号后进行换行。
e. 在括号前不要换行.
正例:
StringBuffer sb = new StringBuffer();
//超过120个字符的情况下,换行缩进4个空格,并且方法前的点符号一起换行
sb.append("zi").append("xin")...
.append("huang")...
.append("huang")...
.append("huang");
6)方法参数在定义和传入时,多个参数逗号后边必须加空格
7)IDE的text file encoding设置为UTF-8;IDE中文件的换行符使用Unix格式,不要使用windows格式
8)方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间插入一个空行。相同业务逻辑和语义之间不需要插入空行

4 OOP规约

1)避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可
2)所有的覆写方法,必须加@Override注解
3)外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生影响。接口过时必须加@Deprecated注解,并清晰地说明采用的新接口或者新服务是什么
4)所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较
5)关于基本数据类型与包装数据类型的使用标准如下
a. 所有的POJO类属性必须使用包装数据类型
b. RPC方法的返回值和参数必须使用包装数据类型
c. 所有的局部变量使用基本数据类型
7)定义DO/DTO/VO等POJO类时,不要设定任何属性默认值
8)构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在init方法中
9)POJO类必须写toString方法。如果继承了另一个POJO类,注意在前面加一下super.toString

5 并发处理

1)获取单例对象需要保证线程安全,其中的方法也要保证线程安全
2)创建线程或线程池时请指定有意义的线程名称,方便出错时回溯
3)线程资源必须通过线程池提供,不允许在应用中自行显式创建线程
4)线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险
5)SimpleDateFormat是线程不安全的类,一般不要定义为static变量,如果定义为static,必须加锁,或者使用DateUtils工具类。
如果是JDK8的应用,可以使用Instant代替Date,LocalDateTime代替Calendar,DateTimeFormatter代替Simpledateformatter
6)高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能锁区块,就不要锁整个方法体;能用对象锁,就不要用类锁
7)对多个资源、数据库表、对象同时加锁时,需要保持一致的加锁顺序,否则可能会造成死锁
8)并发修改同一记录时,避免更新丢失,需要加锁。要么在应用层加锁,要么在缓存加锁,要么在数据库层使用乐观锁,使用version作为更新依据
9)多线程并行处理定时任务时使用ScheduledExecutorService
10)避免Random实例被多线程使用,虽然共享该实例是线程安全的,但会因竞争同一seed导致的性能下降
在JDK7之后,可以直接使用APIThreadLocalRandom,在JDK7之前,可以做到每个线程一个实例
11)volatile解决多线程内存不可见问题。对于一写多读,是可以解决变量同步问题,但是如果多写,同样无法解决线程安全问题。如果是count++操作,使用如下类实现:
AtomicIntegercount = new AtomicInteger();
count.addAndGet(1);
如果是JDK8,推荐使用LongAdder对象,比AtomicLong性能更好(减少乐观锁的重试次数)
12)HashMap在容量不够进行resize时由于高并发可能出现死链,导致CPU飙升,在开发过程中注意规避此风险
13)ThreadLocal无法解决共享对象的更新问题,ThreadLocal对象建议使用static修饰。这个变量是针对一个线程内所有操作共有的,所以设置为静态变量,
所有此类实例共享此静态变量,也就是说在类第一次被使用时装载,只分配一块存储空间,所有此类的对象(只要是这个线程内定义的)都可以操控这个变量

6 注释规约

1)类、类属性、类方法的注释必须使用Javadoc规范,使用/*内容/格式,不得使用//xxx方式
2)所有的抽象方法(包括接口中的方法)必须要用Javadoc注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能
3)所有的枚举类型字段必须要有注释,说明每个数据项的用途
4)特殊注释标记 待办事宜(TODO ) 错误,不能工作(FIXME)

7 异常

1)捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请将该异常抛给它的调用者。最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容
2)在代码中使用“抛异常”还是“返回错误码”,对于公司外的http/api开放接口必须使用“错误码”;而应用内部推荐异常抛出;跨应用间RPC调用优先考虑使用Result方式,
封装isSuccess、“错误码”、“错误简短信息

8 日志

1)应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一
2)异常信息应该包括两类信息:案发现场信息和异常堆栈信息

9 MySql 规约

0)字符集utf8,排序规则utf8_general_ci
1)表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) 任何字段如果为非负数,必须是unsigned。
2)表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字
3)表名不使用复数名词
4)禁用保留字,如desc、range、match、delayed等
5)主键索引名为pk_字段名;唯一索引名为uk_字段名;普通索引名则为idx_字段名
6)小数类型为decimal,禁止使用float和double,float和double在存储的时候,存在精度损失的问题。如果存储的数据范围超过decimal的范围,建议将数据拆成整数和小数分开存储
7)如果存储的字符串长度几乎相等,使用char定长字符串类型
8)varchar是可变长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度大于此值,定义字段类型为text,独立出来一张表,用主键来对应,避免影响其它字段索引效率
9)表必备6个字段:
id varchar(36) --程序生成主键IDUtil.get36UUID(),
creator varchar(36) --创建人,
create_time timestamp --创建时间,
modified varchar(36) --修改人,
dr char(1) --逻辑删除,0:未删除;1:删除,
ts CURRENT_TIMESTAMP --勾选根据当前时间更新时间戳
9.1)字段必选添加注释 --方便数据字典抽取
10)表的命名最好是加上“业务名称_表的作用”
11)字段允许适当冗余,以提高性能,但是必须考虑数据同步的情况。冗余字段应遵循:不是频繁修改的字段,不是varchar超长字段,更不能是text字段
12)单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表
13)合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度
14)业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引
15)超过三个表禁止join。需要join的字段,数据类型必须绝对一致;多表关联查询时,保证被关联的字段需要有索引
16)搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。索引文件具有B-Tree的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引
17)建组合索引的时候,区分度最高的在最左边。但存在非等号和等号混合判断条件时,在建索引时,请把等号条件的列前置
18)count(*)会统计值为NULL的行,而count(列名)不会统计此列为NULL值的行
19)数据订正时,删除和修改记录时,要先select,避免出现误删除,确认无误才能执行更新语句
20)in操作能避免则避免,若实在避免不了,需要仔细评估in后边的集合元素数量,控制在1000个之内

3.5.3 测试运行

1 运行 all-in-one

2 日志路径 通过 log.properties配置 默认是 log.dir=/usr/local/logs/

ybz工程pom.xml

<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>
	<parent>
		<groupId>com.yonyou.ybzboot</groupId>
		<artifactId>parent</artifactId>
		<version>1.2.1-SNAPSHOT</version>
	</parent>

	<groupId>com.yonyou</groupId>
	<artifactId>ybz</artifactId>
	<version>0.0.1-RELEASE</version>
	<packaging>pom</packaging>
	<description>友报账 重构</description>
	<modules>
		<module>common-pub</module>
		<module>base-doc</module>
		<module>third-party</module>
		<module>business-apply</module>
		<module>business-expense</module>
		<module>business-budget</module>
		<module>business-pay</module>
		<module>common-mq</module>
		<module>common-approve</module>
		<module>common-template</module>
		<module>common-print</module>
		<module>business-pub</module>
		<module>business-loan</module>
		<module>open-api</module>
		<module>all-in-one</module>
		<module>common-erp</module>
		<module>common-ocr</module>
        <module>business-accrued</module>
        <module>business-apphome</module>
        <module>business-rule</module>
    </modules>

	<properties>
		<java.version>1.8</java.version>
		<!-- spring版本号 -->
		<spring.version>5.1.6.RELEASE</spring.version>
		<!-- mybatis版本号 -->
		<mybatis.version>3.4.6</mybatis.version>
		<!-- log4j日志文件管理包版本 -->
		<!--<slf4j.version>1.7.7</slf4j.version>-->
		<log4j.version>1.2.17</log4j.version>
		<iuap.modules.version>3.0.0-RC001</iuap.modules.version>
		<iuap_basedoc_sdk.version>1.0.1-SNAPSHOT</iuap_basedoc_sdk.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- 主要依赖库的版本定义 -->
		<cas.version>0.4-SNAPSHOT</cas.version>
		<!-- ucf-file组件版本定义 -->
		<ucf-file.version>1.0.5-SNAPSHOT</ucf-file.version>
		<aliyun-sdk-oss.version>3.6.0</aliyun-sdk-oss.version>
		<fastdfs.version>1.0-SNAPSHOT</fastdfs.version>
		<hw-sdk-obs.version>3.19.7</hw-sdk-obs.version>
		<yht.version>5.0.12-SNAPSHOT</yht.version>
	</properties>
	<dependencies>

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.12</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>
			<exclusions>
				<exclusion>
					<artifactId>spring</artifactId>
					<groupId>org.springframework</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.6</version>
			<exclusions>
				<exclusion>
					<artifactId>log4j</artifactId>
					<groupId>log4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.1</version>
		</dependency>

		<dependency>
			<groupId>com.yonyou.cloud.jwt</groupId>
			<artifactId>java-jwt</artifactId>
			<version>3.1.1-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<artifactId>bcprov-jdk15on</artifactId>
					<groupId>org.bouncycastle</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>
		<dependency>
			<groupId>com.hankcs</groupId>
			<artifactId>hanlp</artifactId>
			<version>portable-1.7.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
		</dependency>
		<dependency>
			<groupId>com.yonyou.ybz</groupId>
			<artifactId>formula-ybz</artifactId>
			<version>1.0.9</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>

		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- mybatis核心包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>${mybatis.version}</version>
		</dependency>
		<!-- mybatis/spring包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
		</dependency>
		<!-- 导入java ee jar 包 -->
		<!--<dependency>-->
		<!--<groupId>javax</groupId>-->
		<!--<artifactId>javaee-api</artifactId>-->
		<!--<version>7.0</version>-->
		<!--</dependency>-->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>jsr311-api</artifactId>
			<version>1.1.1</version>
			<!-- <scope>runtime</scope> -->
		</dependency>
		<!-- 导入Mysql数据库链接jar包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>compile</scope>
		</dependency>
		<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.2.2</version>
		</dependency>
		<!-- JSTL标签类 -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<!-- 日志文件管理包 -->
		<!-- log start -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>
		<!-- 格式化对象,方便输出日志 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.34</version>
		</dependency>
		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<exclusions>
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<!-- log end -->
		<!-- 映入JSON -->
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.9.13</version>
		</dependency>
		<!-- 上传组件包 -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.9</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>1.8.9</version>
		</dependency>


		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>5.0.2.Final</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<version>4.4.1</version>
		</dependency>

		<!-- 测试还款规则 -->
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>2.3.28</version>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-core</artifactId>
			<version>3.4.2</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.unitils</groupId>
			<artifactId>unitils-spring</artifactId>
			<version>3.3</version>
			<exclusions>
				<exclusion>
					<artifactId>poi</artifactId>
					<groupId>poi</groupId>
				</exclusion>
			</exclusions>
			<scope>test</scope>
		</dependency>
		<!-- config redis data and client jar -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
		</dependency>
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk16</artifactId>
			<version>1.46</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcmail-jdk16</artifactId>
			<version>1.46</version>
		</dependency>
		<dependency>
			<groupId>org.xhtmlrenderer</groupId>
			<artifactId>core-renderer</artifactId>
			<version>R8</version>
			<exclusions>
				<exclusion>
					<groupId>bouncycastle</groupId>
					<artifactId>bcmail-jdk14</artifactId>
				</exclusion>
				<exclusion>
					<groupId>bouncycastle</groupId>
					<artifactId>bcprov-jdk14</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.reactivex</groupId>
			<artifactId>rxjava</artifactId>
			<version>1.1.3</version>
		</dependency>
		<!--nc依赖 -->
		<dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>jaxen</groupId>
			<artifactId>jaxen</artifactId>
			<version>1.1.6</version>
		</dependency>
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-core</artifactId>
			<version>1.2.4</version>
		</dependency>
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-web</artifactId>
			<version>1.2.4</version>
		</dependency>
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-quartz</artifactId>
			<version>1.2.4</version>
		</dependency>
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-spring</artifactId>
			<version>1.2.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-xml</artifactId>
			<version>2.9.6</version>
		</dependency>

		<!--引入yonyou Maven -->
		<!--<dependency> -->
		<!--<groupId>com.yonyou.osp</groupId> -->
		<!--<artifactId>tenant-integration</artifactId> -->
		<!--<version>0.0.6-SNAPSHOT</version> -->
		<!--</dependency> -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-tenant-cas</artifactId>
			<version>1.3.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-tenant-sdk</artifactId>
			<version>${yht.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.amqp</groupId>
			<artifactId>spring-rabbit</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
			<version>1.1.0.Final</version>
		</dependency>
		<dependency>
			<groupId>com.github.fernandospr</groupId>
			<artifactId>javapns-jdk16</artifactId>
			<version>2.3.1</version>
		</dependency>
		<!--jpush以及它依赖的package -->
		<dependency>
			<groupId>cn.jpush.api</groupId>
			<artifactId>jpush-client</artifactId>
			<version>3.2.17</version>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>
		<dependency>
			<groupId>com.squareup.okhttp</groupId>
			<artifactId>mockwebserver</artifactId>
			<version>1.5.4</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcprov-jdk15on</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!--增加短信验证引入 -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-message</artifactId>
			<version>3.0.0-RC001</version>
		</dependency>
		<!--iuap uuid 生成 -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-oid</artifactId>
			<version>${iuap.modules.version}</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-saas-dynamicds</artifactId>
			<version>${iuap.modules.version}</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-auth</artifactId>
			<version>${iuap.modules.version}</version>
			<exclusions>
				<exclusion>
					<artifactId>log4j-over-slf4j</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- jjwt,Java Web Token签名工具包 -->
		<dependency>
			<groupId>io.jsonwebtoken</groupId>
			<artifactId>jjwt</artifactId>
			<version>0.6.0</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-commons</artifactId>
			<version>2.1.7.RELEASE</version>
		</dependency>
		<!-- 云打印 -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap.print.client</artifactId>
			<version>1.0.3-RC003</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-securitycenter-client</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>
		<!-- iuap基本档案1.0版本 -->
		<!-- 基本档案公共服务 -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap_basedoc_sdk</artifactId>
			<version>1.0.1-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<groupId>com.yonyou.cloud</groupId>
					<artifactId>auth-sdk-client</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.yonyou.iuap</groupId>
					<artifactId>iuap-sdk-common</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- 组织,部门查询服务SDK -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-org-sdk</artifactId>
			<version>1.1.1-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<groupId>com.yonyou.cloud</groupId>
					<artifactId>auth-sdk-client</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- 职务、职级、人员基本信息同步SDK -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap_bd_sdk</artifactId>
			<version>1.0.0-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<groupId>com.yonyou.cloud</groupId>
					<artifactId>auth-sdk-client</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.yonyou.iuap</groupId>
					<artifactId>iuap-sdk-common</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- iuap基本档案2.0版本 -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-bd-pub-qry-sdk</artifactId>
			<version>2.5.0-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcprov-jdk15on</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-bd-common-api</artifactId>
			<version>2.5.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-sdk-common</artifactId>
			<version>2.5.0-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<artifactId>bcprov-jdk15on</artifactId>
					<groupId>org.bouncycastle</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-basedoc-sdk</artifactId>
			<version>2.5.0-SNAPSHOT</version>
		</dependency>
		<!--基本档案-友报账特定需求查询-->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-bd-pub-scn-sdk</artifactId>
			<version>2.5.0-SNAPSHOT</version>
		</dependency>
		<!--基本档案公共操作服务-->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-bd-pub-mtn-sdk</artifactId>
			<version>2.5.0-SNAPSHOT</version>
		</dependency>
		<!--友账表基本档案-->
		<dependency>
			<groupId>com.yonyou.ficloud</groupId>
			<artifactId>ficloud-bd-pub</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>
		<!--云审sdk add by zhangybt -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-bpm-sync-sdk</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>

		<!--JSON add by zhangybt -->
		<!--<dependency> -->
		<!--<groupId>org.json</groupId> -->
		<!--<artifactId>json</artifactId> -->
		<!--<version>20090211</version> -->
		<!--</dependency> -->
		<!--云审批正式sdk -->
		<dependency>
			<groupId>com.yonyou.uap.bpm</groupId>
			<artifactId>ubpm-rest-sdk</artifactId>
			<version>${ubpm-rest-sdk-version}</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
		<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
		</dependency>
		<dependency>
			<groupId>org.bitbucket.b_c</groupId>
			<artifactId>jose4j</artifactId>
			<version>0.5.2</version>
		</dependency>

		<dependency>
			<groupId>com.aliyun.api.gateway</groupId>
			<artifactId>sdk-core-java</artifactId>
			<version>1.0.3</version>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
		</dependency>
		<!-- 去除ficloud依赖 -->
		<dependency>
			<groupId>com.yonyou.ssc</groupId>
			<artifactId>push-im-service</artifactId>
			<version>1.0</version>
			<exclusions>
				<exclusion>
					<groupId>com.yonyou.fi</groupId>
					<artifactId>ficloud_sdk</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcprov-jdk15on</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>javaee-api</artifactId>
					<groupId>javax</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- oss授权相关 -->
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-sts</artifactId>
			<version>2.1.6</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-core</artifactId>
			<version>2.1.7</version>
		</dependency>
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.1-rc1</version>
		</dependency>

		<!-- 查询分页插件 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>5.0.3</version>
		</dependency>
		<dependency>
			<groupId>com.github.jsqlparser</groupId>
			<artifactId>jsqlparser</artifactId>
		</dependency>
		<!-- http请求工具类 -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>fluent-hc</artifactId>
			<version>4.5.2</version>
		</dependency>


		<!-- 权限sdk -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>tenantauth-sdk</artifactId>
			<version>0.0.5-SNAPSHOT</version>
		</dependency>
		<!--验证码 -->
		<dependency>
			<groupId>com.github.axet</groupId>
			<artifactId>kaptcha</artifactId>
			<version>0.0.9</version>
		</dependency>

		<!-- WEB-INF/lib -->
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>aliyun-sdk-mns</artifactId>
			<version>1.1.7</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>xtLogin</artifactId>
			<version>1.0</version>
		</dependency>

		<dependency>
			<groupId>ssc</groupId>
			<artifactId>um_gateway</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>QRCode</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>pubumlogin</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>pubuapsfapp</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>mobem_pub</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>log</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>granite</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>fwserver</artifactId>
			<version>1.0</version>
		</dependency>

		<dependency>
			<groupId>ssc</groupId>
			<artifactId>fwpub</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>ermthirdparty</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.10</version>
		</dependency>
		<dependency>
			<groupId>ssc</groupId>
			<artifactId>commons.httpclient</artifactId>
			<version>3.1.0</version>
		</dependency>

		<dependency>
			<groupId>ssc</groupId>
			<artifactId>basic</artifactId>
			<version>1.0</version>
		</dependency>

		<dependency>
			<groupId>ssc</groupId>
			<artifactId>corp.openapicalls.lib.webapi</artifactId>
			<version>V5.0.41</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
		<dependency>
			<groupId>net.coobird</groupId>
			<artifactId>thumbnailator</artifactId>
			<version>0.4.8</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
		</dependency>

		<dependency>
			<groupId>tianwei</groupId>
			<artifactId>topesa</artifactId>
			<version>0.0.2</version>
		</dependency>
		<dependency>
			<groupId>tianwei</groupId>
			<artifactId>bcprov</artifactId>
			<version>0.0.1</version>
		</dependency>
		<dependency>
			<groupId>tianwei</groupId>
			<artifactId>top-core</artifactId>
			<version>0.0.1</version>
		</dependency>
		<dependency>
			<groupId>tianwei</groupId>
			<artifactId>top-security</artifactId>
			<version>0.0.1</version>
		</dependency>
		<dependency>
			<groupId>tianwei</groupId>
			<artifactId>TopBasicCrypto</artifactId>
			<version>0.0.1</version>
		</dependency>
		<dependency>
			<groupId>tianwei</groupId>
			<artifactId>json</artifactId>
			<version>0.0.1</version>
		</dependency>

		<!-- cas -->
		<dependency>
			<groupId>org.jasig.cas.client</groupId>
			<artifactId>cas-client-core</artifactId>
			<version>3.3.2</version>
			<exclusions>
				<exclusion>
					<!-- declare the exclusion here -->
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcprov-jdk15</artifactId>
				</exclusion>
				<exclusion>
					<!-- declare the exclusion here -->
					<groupId>commons-httpclient</groupId>
					<artifactId>commons-httpclient</artifactId>
				</exclusion>
				<exclusion>
					<!-- declare the exclusion here -->
					<groupId>xalan</groupId>
					<artifactId>xalan</artifactId>
				</exclusion>
				<exclusion>
					<!-- declare the exclusion here -->
					<groupId>commons-collections</groupId>
					<artifactId>commons-collections</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>log4j-over-slf4j</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<!--集成友户通登录需要 -->
		<dependency>
			<groupId>com.yonyou.yht</groupId>
			<artifactId>yht-sso-client</artifactId>
			<version>0.4-SNAPSHOT</version>
		</dependency>
		<!-- 登录后使用Redis存储session时需要 -->
		<dependency>
			<groupId>com.yonyou.yht</groupId>
			<artifactId>yht-sso-cache</artifactId>
			<version>0.4-SNAPSHOT</version>
		</dependency>
		<!--调用友户通SDK的依赖-->
		<dependency>
			<groupId>com.yonyou.yht</groupId>
			<artifactId>yht-sdk</artifactId>
			<version>${yht.version}</version>
		</dependency>


		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<!-- 系统互信 -->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>iuap-security</artifactId>
			<version>3.0.0-RC001</version>
			<exclusions>
				<exclusion>
					<!-- declare the exclusion here -->
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<!-- declare the exclusion here -->
					<groupId>org.slf4j</groupId>
					<artifactId>jcl-over-slf4j</artifactId>
				</exclusion>
				<exclusion>
					<!-- declare the exclusion here -->
					<groupId>xom</groupId>
					<artifactId>xom</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>log4j-over-slf4j</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>3.9.0</version>
			<classifier>javadoc</classifier>
		</dependency>
		<dependency>
			<groupId>io.springside</groupId>
			<artifactId>springside-redis</artifactId>
			<version>4.3.0-RELEASE</version>
		</dependency>
		<!--解析pdf-->
		<dependency>
			<groupId>org.apache.pdfbox</groupId>
			<artifactId>pdfbox</artifactId>
			<version>2.0.9</version>
		</dependency>


		<!--<dependency>-->
		<!--<groupId>fi</groupId>-->
		<!--<artifactId>fiaccess_sdk</artifactId>-->
		<!--<version>0.0.1-SNAPSHOT</version>-->
		<!--</dependency>-->


		<dependency>
			<groupId>com.yonyou.ybzboot</groupId>
			<artifactId>redis-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-api</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>jersey-server</artifactId>
					<groupId>org.glassfish.jersey.core</groupId>
				</exclusion>
				<exclusion>
					<artifactId>bcprov-jdk15on</artifactId>
					<groupId>org.bouncycastle</groupId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-autoconfigure</artifactId>
				</exclusion>
			</exclusions>

		</dependency>

		<dependency>
			<groupId>com.yonyou.ybzboot</groupId>
			<artifactId>hystrix-pub</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-api</artifactId>
				</exclusion>
			</exclusions>

		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>

		<dependency>
			<groupId>com.yonyou.cloud.middleware</groupId>
			<artifactId>mwclient</artifactId>
			<version>5.1.5-RELEASE</version>
			<type>pom</type>
		</dependency>
		<dependency>
			<groupId>com.yonyou.cloud.middleware</groupId>
			<artifactId>iris-spring-support</artifactId>
			<version>5.1.5-RELEASE</version>
		</dependency>

		<dependency>
			<groupId>com.yonyou.diwork</groupId>
			<artifactId>diwork-sdk</artifactId>
			<version>4.0.6-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<groupId>com.yonyou.iuap</groupId>
					<artifactId>iuap-generic</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.yonyou.diwork</groupId>
			<artifactId>diwork-pub-lisence</artifactId>
			<version>4.0.6-SNAPSHOT</version>
		</dependency>

		<dependency>
			<groupId>com.xiaoleilu</groupId>
			<artifactId>hutool-all</artifactId>
			<version>3.3.2</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>tenantauth-common</artifactId>
			<version>0.0.6-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.brigade</groupId>
			<artifactId>brigade_client</artifactId>
			<version>1.0.7-RELEASE</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.fi</groupId>
			<artifactId>fievent_sdk</artifactId>
			<version>0.0.9-SNAPSHOT</version>
		</dependency>

		<!-- 报账通用工具包:包含多语相关内容 -->
		<dependency>
			<groupId>com.yonyou.ybz</groupId>
			<artifactId>common-generic</artifactId>
			<version>1.0-SNAPSHOT</version>
		</dependency>
		<!-- 员工信用工具包 -->
		<dependency>
			<groupId>com.yonyou.ybz</groupId>
			<artifactId>credit-api</artifactId>
			<version>1.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.ybzboot</groupId>
			<artifactId>mybatisplus-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>com.baomidou</groupId>
					<artifactId>mybatis-plus</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mybatis</groupId>
					<artifactId>mybatis-spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>mysql</groupId>
					<artifactId>mysql-connector-java</artifactId>
				</exclusion>
				<exclusion>
					<groupId>mysql</groupId>
					<artifactId>mysql-connector-java</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.alibaba</groupId>
					<artifactId>druid</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.github.pagehelper</groupId>
					<artifactId>pagehelper</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-autoconfigure</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.yonyou.ybzboot</groupId>
			<artifactId>facade-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>com.yonyou.ybzboot</groupId>
			<artifactId>dubbo-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>com.yonyou.ybzboot</groupId>
					<artifactId>common-starter</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.alibaba.boot</groupId>
					<artifactId>dubbo-spring-boot-starter</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.yonyou.ybzboot</groupId>
			<artifactId>txmq-starter</artifactId>
			<version>1.2.2</version>
		</dependency>
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>ucg-auth-sdk</artifactId>
			<version>5.0.2-RELEASE</version>
		</dependency>

		<!--ucf-file组件-->
		<dependency>
			<groupId>com.yonyou.iuap</groupId>
			<artifactId>ucf-file</artifactId>
			<version>${ucf-file.version}</version>
		</dependency>
		<!-- FastDFS -->
		<dependency>
			<groupId>org.csource</groupId>
			<artifactId>fastdfs-client-boost</artifactId>
			<version>${fastdfs.version}</version>
		</dependency>

		<!-- 阿里云OSS -->
		<dependency>
			<groupId>com.aliyun.oss</groupId>
			<artifactId>aliyun-sdk-oss</artifactId>
			<version>${aliyun-sdk-oss.version}</version>
			<exclusions>
				<exclusion>
					<artifactId>json-lib</artifactId>
					<groupId>net.sf.json-lib</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- 阿里云OSS END-->

		<!--华为云OBS -->
		<dependency>
			<groupId>com.huaweicloud</groupId>
			<artifactId>esdk-obs-java</artifactId>
			<version>${hw-sdk-obs.version}</version>
		</dependency>
		<!--华为云END -->
	</dependencies>

	<repositories>

		<repository>
			<id>fi_releases</id>
			<name>fi_releases</name>
			<url>http://172.20.4.221:8081/nexus/content/repositories/releases/</url>
		</repository>

		<repository>
			<id>fi_snapshots</id>
			<name>fi_snapshots</name>
			<url>http://172.20.4.221:8081/nexus/content/repositories/snapshots/</url>
		</repository>
<!--
		<repository>
			<id>ybz_releases</id>
			<name>ybz_releases</name>
			<url>http://maven.yonyou.com/nexus/repository/ybz-releases/</url>
		</repository>

		<repository>
			<id>ybz_snapshots</id>
			<name>ybz_snapshots</name>
			<url>http://maven.yonyou.com/nexus/repository/ybz-snapshots/</url>
		</repository>
-->
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>public</id>
			<name>public</name>
			<url>http://maven.yonyou.com/nexus/repository/public/</url>
		</pluginRepository>

		<pluginRepository>
			<id>Nuxeo</id>
			<name>Nuxeo</name>
			<url>http://maven.yonyou.com/nexus/content/repositories/Nuxeo</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>


	<!-- profile配置 -->
	<profiles>
		<profile>
			<id>saas-kekai</id>
			<properties>
				<package.environment>saas-kekai</package.environment>
				<ubpm-rest-sdk-version>1.2.2-SNAPSHOT</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>saas-dev</id>
			<properties>
				<package.environment>saas-dev</package.environment>
				<ubpm-rest-sdk-version>1.2.2-SNAPSHOT</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>saas-test</id>
			<properties>
				<package.environment>saas-test</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>saas-hotfix</id>
			<properties>
				<package.environment>saas-hotfix</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>saas-prod</id>
			<properties>
				<package.environment>saas-prod</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>u8c-iter</id>
			<properties>
				<package.environment>u8c-iter</package.environment>
				<ubpm-rest-sdk-version>1.2.2-SNAPSHOT</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>u8c-daily</id>
			<properties>
				<package.environment>u8c-daily</package.environment>
				<ubpm-rest-sdk-version>1.2.2-SNAPSHOT</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>u8c-test</id>
			<properties>
				<package.environment>u8c-test</package.environment>
				<ubpm-rest-sdk-version>1.2.2-SNAPSHOT</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>u8c-pre</id>
			<properties>
				<package.environment>u8c-pre</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>u8c-prd</id>
			<properties>
				<package.environment>u8c-prd</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>ncc-cust-dev</id>
			<properties>
				<package.environment>ncc-cust-dev</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<!--ncc临时开发环境-->
		<profile>
			<id>ncc-dev</id>
			<properties>
				<package.environment>ncc-dev</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>ncc-daily</id>
			<properties>
				<package.environment>ncc-daily</package.environment>
				<ubpm-rest-sdk-version>1.2.2-SNAPSHOT</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>ncc-test</id>
			<properties>
				<package.environment>ncc-test</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>ncc-grey</id>
			<properties>
				<package.environment>ncc-grey</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>ncc-prod</id>
			<properties>
				<package.environment>ncc-prod</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>ncc-pri</id>
			<properties>
				<package.environment>ncc-pri</package.environment>
				<ubpm-rest-sdk-version>2.7</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>nccmobile-dev</id>
			<properties>
				<package.environment>nccmobile-dev</package.environment>
				<ubpm-rest-sdk-version>1.2.2-SNAPSHOT</ubpm-rest-sdk-version>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
	</profiles>


	<build>
		<finalName>${project.name}</finalName>


		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<excludes>
					<exclude>filters/**</exclude>
					<exclude>common/**</exclude>
					<exclude>common-config/**</exclude>
					<exclude>sql/**</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources/common</directory>
			</resource>
			<resource>
				<directory>src/main/resources/common-config</directory>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>src/main/resources/filters/${package.environment}</directory>
				<excludes>
					<exclude>src/main/resources/filters/${package.environment}/config.properties</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources/sql</directory>
			</resource>

			<!--解决工具原因导致找不到mapper文件问题-->
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
					<include>com/nc/**</include>
				</includes>
				<filtering>false</filtering>
			</resource>
		</resources>


		<plugins>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<compilerArguments>
						<extdirs>src/main/webapp/WEB-INF/lib</extdirs>
					</compilerArguments>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>


	<distributionManagement>

	</distributionManagement>

</project>
上一篇:IDEA中发布的javaweb项目是怎么和Tomcat联系上的?javaweb中的路径问题?javaweb中的绝对路径到底是相对的什么?绝对的什么文件夹路径?


下一篇:SpringBoot+Maven 多模块项目的构建、运行、打包