diff --git a/.coveralls.yml b/.coveralls.yml
new file mode 100644
index 0000000..6e64999
--- /dev/null
+++ b/.coveralls.yml
@@ -0,0 +1 @@
+service_name: travis-ci
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..af3d4f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+# maven ignore
+target/
+*.jar
+*.war
+*.zip
+*.tar
+*.tar.gz
+
+# eclipse ignore
+.settings/
+.project
+.classpath
+
+# idea ignore
+.idea/
+*.ipr
+*.iml
+*.iws
+
+# temp ignore
+*.log
+*.cache
+*.diff
+*.patch
+*.tmp
+*.java~
+*.properties~
+*.xml~
+
+# system ignore
+.DS_Store
+Thumbs.db
+
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..e625d4a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,8 @@
+language: java
+jdk:
+- oraclejdk7
+install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true
+script: mvn test
+after_success:
+- mvn clean cobertura:cobertura coveralls:report
+
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..5a0dc34
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,331 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2016 ShenHuaJie iBase4J@163.com
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+======================================================================
+
+ Apache许可证
+ 版本 2.0,2004年1月
+ http://www.apache.org/licenses/
+
+ 使用、重生成及分发的术语和条件:
+
+ 1.定义
+
+ "许可证"是指根据本文档第1到第9部分关于使用、重生成和分发的术语和条件。
+
+ "许可证颁发者"是指版权所有者或者由版权所有者批准的授权许可证的实体。
+
+ "法律实体"是指实施实体和进行控制的所有其它实体受该实体控制,或者受该实体集中控制。
+ 根据此定义,"控制"是指(i)让无论是否签订协议的上述实体,进行指导或管理的直接权利或间接权利,
+ 或者(ii)拥有百分之五十(50%)或以上已发行股票的所有者,或者(iii)上述实体的实权所有者。
+
+ "用户"(或"用户的")是指行使本许可证所授予权限的个人或法律实体。
+
+ "源程序"形式是指对包含但不限制软件源代码、文档源程序和配置文件进行修改的首选形式。
+
+ "目标"形式是指对源程序形式进行机械转换或翻译的任何形式,包括但不限于对编译的目标代码,
+ 生成的文件以及转换为其它媒体类型。
+
+ "作品"是指根据本许可证所制作的源程序形式或目标形式的著作,在著作中包含的或附加的版权通知
+ (在下面附录中提供了一个示例)。
+
+ "衍生作品"是指基于作品(或从作品衍生而来)的源程序形式或目标形式的任何作品,以及编辑修订、
+ 注释、详细描述或其它修订等构成原创著作作品的整体。根据本许可证,衍生作品不得包括与作品及其
+ 衍生作品分离之作品,或仅与作品及其衍生作品的接口相链接(或按名称结合)之作品。
+
+ "贡献"是指任何著作作品,包括作品的原始版本和对该作品或衍生作品所做的任何修订或补充,
+ 意在提交给许可证颁发者以让版权所有者或代表版权所有者的授权个人或法律实体包含在其作品中。
+ 根据此定义,"提交"一词表示发送给许可证颁发者或其代表人,任何电子的、口头的或书面的交流信息形式,
+ 包括但不限于在由许可证颁发者或者代表其管理的电子邮件清单、源代码控制系统、以及发布跟踪系统上为
+ 讨论和提高作品的交流,但不包括由版权所有者以书面形式明显标注或指定为"非贡献"的交流活动。
+
+ "贡献者"是指许可证颁发者和代表从许可证颁发者接受之贡献的并随后包含在作品之贡献中的任何个人或法律实体。
+
+ 2.版权许可证的授予
+
+ 根据本许可证的条款,每个贡献者授予用户永久性的、全球性的、非专有性的、免费的、无版权费的、
+ 不可撤销的版权许可证以源程序形式或目标形式复制、准备衍生作品、公开显示、公开执行、
+ 授予分许可证、以及分发作品和这样的衍生作品。
+
+ 3.专利许可证的授予
+
+ 根据本许可证的条款,每个贡献者授予用户永久性的、全球性的、非专有性的、免费的、无版权费的、
+ 不可撤销的(除在本部分进行说明)专利许可证对作品进行制作、让人制作、使用、提供销售、销售、
+ 进口和其它转让,且这样的许可证仅适用于在所递交作品的贡献中因可由单一的或多个这样的贡献者
+ 授予而必须侵犯的申请专利。如果用户对任何实体针对作品或作品中所涉及贡献提出因直接性或贡献性
+ 专利侵权而提起专利法律诉讼(包括交互诉讼请求或反索赔),那么根据本许可证,授予用户针对作品
+ 的任何专利许可证将在提起上述诉讼之日起终止。
+
+ 4.重新分发
+
+ 用户可在任何媒介中复制和分发作品或衍生作品之副本,无论是否修订,还是以源程序形式或目标形式,
+ 条件是用户需满足下列条款:
+
+ a) 用户必须为作品或衍生作品的任何其他接收者提供本许可证的副本;并且
+
+ b) 用户必须让任何修改过的文件附带明显的通知,声明用户已更改文件;并且
+
+ c) 用户必须从作品的源程序形式中保留衍生作品源程序形式的用户所分发的所有版权、专利、
+ 商标和属性通知,但不包括不属于衍生作品任何部分的类似通知;并且
+
+ d) 如果作品将"通知"文本文件包括为其分发作品的一部分,那么用户分发的任何衍生作品中须至少
+ 在下列地方之一包括,在这样的通知文件中所包含的属性通知的可读副本,但不包括那些不属于衍生
+ 作品任何部分的通知:在作为衍生作品一部分而分发的通知文本文件中;如果与衍生作品一起提供则
+ 在源程序形式或文件中;或者通常作为第三方通知出现的时候和地方,在衍生作品中产生的画面中。
+ 通知文件的内容仅供信息提供,并未对许可证进行修改。用户可在其分发的衍生作品中在作品的通知
+ 文本后或作为附录添加自己的属性通知,条件是附加的属性通知不得构成修改本许可证。
+
+ 用户可以为自身所做出的修订添加自己的版权声明并可对自身所做出修订内容或为这样的衍生作品作为
+ 整体的使用、复制或分发提供附加或不同的条款,条件是用户对作品的使用、复制和分发必须符合本许
+ 可证中声明的条款。
+
+ 5.贡献的提交。
+
+ 除非用户明确声明,在作品中由用户向许可证颁发者的提交若要包含在贡献中,必须在无任何附加条款下
+ 符合本许可证的条款。尽管上面如此规定,执行许可证颁发者有关贡献的条款时,任何情况下均不得替代
+ 或修改任何单独许可证协议的条款。
+
+ 6.商标。本许可证并未授予用户使用许可证颁发者的商号、商标、服务标记或产品名称,除非将这些名称
+ 用于合理性和惯例性描述作品起源和复制通知文件的内容时。
+
+ 7.保证否认条款。除非因适用法律需要或书面同意,许可证颁发者以"按原样"基础提供作品(并且每个
+ 贡献者提供其贡献),无任何明示的或暗示的保证或条件,包括但不限于关于所有权、不侵权、
+ 商品适销性、或适用性的保证或条件。用户仅对使用或重新分发作品的正确性负责,并需承担根据本
+ 许可证行使权限时的任何风险。
+
+ 8.责任限制条款。在任何情况下并根据任何法律,无论是因侵权(包括过失)或根据合同,还是其它原因,
+ 除非根据适用法律需要(例如故意行为和重大过失行为)或经书面同意,即使贡献者事先已被告知发生
+ 损害的可能性,任何贡献者不就用户因使用本许可证或不能使用或无法使用作品(包括但不限于商誉损失、
+ 停工、计算机失效或故障,或任何商业损坏或损失)而造成的损失,包括直接的、非直接的、特殊的、意外
+ 的或间接的字符损坏而负责。
+
+ 9.接受保证或附加责任。重新分发作品或及其衍生作品时,用户可选择提供或为符合本许可证承担之支持、
+ 担保、赔偿或其它职责义务和/或权利而收取费用。但是,在承担上述义务时,用户只可代表用户本身和
+ 用户本身责任来执行,无需代表任何其它贡献者,并且用户仅可保证、防护并保持每个贡献者不受任何
+ 因此而产生的责任或对因用户自身承担这样的保证或附加责任而对这样的贡献者所提出的索赔。
+
+ 条款结束
+
+ 附录:如何向用户作品中应用Apache许可证。
+
+ 若要向用户作品应用Apache许可证,请附加下列样本通知,将括号"[]"中的字段以用户自身的
+ 区分信息来替换(但不包括括号)。文本必须以文件格式适当的注释句法包含在其中。
+ 另外建议将文件名或类别名以及目的说明包含在相同的"打印页"上作为版权通知,以更加容易的区分出第三方档案。
+
+ 版权所有 2016 ShenHuaJie iBase4J@163.com 根据2.0版本Apache许可证("许可证")授权;
+ 根据本许可证,用户可以不使用此文件。
+
+ 用户可从下列网址获得许可证副本:http://www.apache.org/licenses/LICENSE-2.0
+ 除非因适用法律需要或书面同意,根据许可证分发的软件是基于"按原样"基础提供,
+ 无任何明示的或暗示的保证或条件。详见根据许可证许可下,特定语言的管辖权限和限制。
+
+ =======================================================
+
+ 简要解释:
+
+ 1.需要给代码的用户一份Apache Licence
+ 2.如果你修改了代码,需要在被修改的文件中说明。
+ 3.在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,
+ 专利声明和其他原来作者规定需要包含的说明。
+ 4.如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有 Apache Licence。
+ 你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..794175a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# sensitive-word
+
+[sensitive-word](https://github.com/houbb/sensitive-word) 基于 DFA 算法实现的敏感词工具。
+
+[](http://mvnrepository.com/artifact/com.github.houbb/sensitive-word)
+
+[](https://github.com/houbb/sensitive-word/blob/master/LICENSE.txt)
\ No newline at end of file
diff --git a/cgit.bat b/cgit.bat
new file mode 100644
index 0000000..b0d0d35
--- /dev/null
+++ b/cgit.bat
@@ -0,0 +1,11 @@
+:: 用于提交当前变更(windows)
+:: author: houbb
+:: LastUpdateTime: 2018-11-22 09:08:52
+:: 用法:双击运行,或者当前路径 cmd 直接输入 .\cgit.bat
+
+git pull
+git add .
+git commit -m "[Feature] add for new"
+git push
+git status
+
diff --git a/cgit.sh b/cgit.sh
new file mode 100644
index 0000000..118be15
--- /dev/null
+++ b/cgit.sh
@@ -0,0 +1,12 @@
+# 提交
+
+git pull
+git add .
+git commit -m "[Feature] add for new"
+git push
+git status
+
+# 1. 赋值权限: chmod +x ./cgit.sh
+# 2. 执行: ./cgit.sh
+# Last Update Time: 2018-11-21 21:55:38
+# Author: houbb
\ No newline at end of file
diff --git a/doc/CHANGE_LOG.md b/doc/CHANGE_LOG.md
new file mode 100644
index 0000000..0984e75
--- /dev/null
+++ b/doc/CHANGE_LOG.md
@@ -0,0 +1,22 @@
+# 变更日志
+
+| 类型 | 说明 |
+|:----|:----|
+| A | 新增 |
+| U | 更新 |
+| D | 删除 |
+| T | 测试 |
+| O | 优化 |
+| F | 修复BUG |
+
+# release_0.0.1
+
+| 序号 | 变更类型 | 说明 | 时间 | 备注 |
+|:---|:---|:---|:---|:--|
+| 1 | A | 网易 163 邮箱功能的实现 | 2019-12-31 17:12:14 | |
+
+# release_0.0.2
+
+| 序号 | 变更类型 | 说明 | 时间 | 备注 |
+|:---|:---|:---|:---|:--|
+| 1 | A | 多个收件人的特性支持 | 2020-1-6 17:12:14 | |
diff --git a/doc/issues/issues.md b/doc/issues/issues.md
new file mode 100644
index 0000000..a1d8187
--- /dev/null
+++ b/doc/issues/issues.md
@@ -0,0 +1,31 @@
+# 多收件人的概念
+
+## 收件人
+
+## 抄送者
+
+## 秘密抄送者
+
+# 池化
+
+## 发件人
+
+类似于线程池,可以设置池化的概念。
+
+## 发送的性能
+
+发送时多线程支持。
+
+# 常见其他邮箱支持
+
+## 网易
+
+## QQ
+
+## gmail
+
+qq gmail xxx
+
+# 对于模板的支持
+
+FTL 模板的支持。
\ No newline at end of file
diff --git a/doc/issues/v3-其他常见邮箱的支持.md b/doc/issues/v3-其他常见邮箱的支持.md
new file mode 100644
index 0000000..c777b88
--- /dev/null
+++ b/doc/issues/v3-其他常见邮箱的支持.md
@@ -0,0 +1,15 @@
+# 常见其他邮箱支持
+
+## 网易
+
+## QQ
+
+## gmail
+
+## 自定义
+
+允许用户自定义属性配置。
+
+- 可以提供常见的常量 key+value,优化使用体验。
+
+- 提供默认邮件配置模板
\ No newline at end of file
diff --git a/doc/issues/v4-针对邮件模板的支持.md b/doc/issues/v4-针对邮件模板的支持.md
new file mode 100644
index 0000000..b3972c6
--- /dev/null
+++ b/doc/issues/v4-针对邮件模板的支持.md
@@ -0,0 +1,3 @@
+# 对于模板的支持
+
+FTL 模板的支持。
\ No newline at end of file
diff --git a/doc/issues/v5-针对发件人池化的实现.md b/doc/issues/v5-针对发件人池化的实现.md
new file mode 100644
index 0000000..088cba1
--- /dev/null
+++ b/doc/issues/v5-针对发件人池化的实现.md
@@ -0,0 +1,10 @@
+# 池化
+
+## 发件人
+
+类似于线程池,可以设置池化的概念。
+
+## 发送的性能
+
+发送时多线程支持。
+。
\ No newline at end of file
diff --git a/doc/issues/v6-邮件发送的多线程处理.md b/doc/issues/v6-邮件发送的多线程处理.md
new file mode 100644
index 0000000..e69de29
diff --git a/doc/发布流程.md b/doc/发布流程.md
new file mode 100644
index 0000000..3d325e4
--- /dev/null
+++ b/doc/发布流程.md
@@ -0,0 +1,41 @@
+# push to mvn center
+
+确认版本为 release
+
+```
+mvn clean deploy -P release
+```
+
+# commit to github
+
+```
+git push
+```
+
+# merge to master
+
+```
+git checkout master
+git pull
+git checkout branch
+git rebase master (用rebase合并主干的修改,如果有冲突在此时解决)
+git checkout master
+git merge branch
+git push
+```
+
+# create new branch & checkout
+
+```
+git branch release_XXX
+git checkout release_XXX
+```
+
+# modify project version
+
+```
+mvn versions:set -DgroupId=com.github.houbb -DartifactId=paradise* -DoldVersion=1.1.1 -DnewVersion=1.1.2-SNAPSHOT-->
+mvn -N versions:update-child-modules
+mvn versions:commit
+```
+
diff --git a/pom.xml b/pom.xml
index a410475..160a97c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,5 +8,230 @@
sensitive-word0.0.1-SNAPSHOT
+
+
+ 3.2
+ 3.2
+ 2.18.1
+ false
+ false
+
+ 2.2.1
+ 2.9.1
+ 1.5
+
+
+ UTF-8
+ 1.7
+
+
+
+
+ 1.6.2
+ 4.12
+
+
+
+
+
+
+
+
+
+
+ com.sun.mail
+ javax.mail
+ ${javax.mail.version}
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ junit
+ junit
+
+
+
+ com.sun.mail
+ javax.mail
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${plugin.compiler.version}
+
+ ${project.compiler.level}
+ ${project.compiler.level}
+ ${project.build.sourceEncoding}
+ -proc:none
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${plugin.surefire.version}
+
+ ${plugin.surefire.skip-it}
+ ${plugin.surefire.ignore-failure}
+
+
+
+
+
+ org.eluder.coveralls
+ coveralls-maven-plugin
+ 4.3.0
+
+
+
+ org.codehaus.mojo
+ cobertura-maven-plugin
+ 2.7
+
+ xml
+ 256m
+
+ true
+
+
+ **/*Test.class
+ **/HelpMojo.class
+ **/*Vo.class
+
+
+
+
+
+
+
+
+ org.sonarsource.scanner.maven
+ sonar-maven-plugin
+ 3.1.1
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ ${plugin.maven-javadoc-plugin.version}
+
+
+
+
+
+
+ email
+ The most elegant email tool for java.
+
+
+ org.sonatype.oss
+ oss-parent
+ 7
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+ https://github.com/houbb/email
+ https://github.com/houbb/email.git
+ https://houbb.github.io/
+
+
+
+ houbb
+ houbinbin.echo@gmail.com
+ https://houbb.github.io/
+
+
+
+
+
+
+
+ release
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ ${plugin.maven-source-plugin.version}
+
+
+ package
+
+ jar-no-fork
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ ${plugin.maven-javadoc-plugin.version}
+
+
+ package
+
+ jar
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ ${plugin.maven-gpg-plugin.version}
+
+
+ verify
+
+ sign
+
+
+
+
+
+
+
+
+ oss
+ https://oss.sonatype.org/content/repositories/snapshots/
+
+
+ oss
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
\ No newline at end of file
diff --git a/release.bat b/release.bat
new file mode 100644
index 0000000..89ec420
--- /dev/null
+++ b/release.bat
@@ -0,0 +1,43 @@
+:: 用于 release 当前项目(windows)
+:: author: houbb
+:: LastUpdateTime: 2018-1-22 09:08:52
+:: 用法:双击运行,或者当前路径 cmd 直接输入 release.bat
+
+:: 关闭回显
+@echo OFF
+
+ECHO "============================= RELEASE START..."
+
+:: 版本号信息(需要手动指定)
+:::: 旧版本名称
+SET version=0.0.2
+:::: 新版本名称
+SET newVersion=0.0.3
+:::: 组织名称
+SET groupName=com.github.houbb
+:::: 项目名称
+SET projectName=email
+
+:: release 项目版本
+:::: snapshot 版本号
+SET snapshot_version=%version%"-SNAPSHOT"
+:::: 新的版本号
+SET release_version=%version%
+
+call mvn versions:set -DgroupId=%groupName% -DartifactId=%projectName% -DoldVersion=%snapshot_version% -DnewVersion=%release_version%
+call mvn -N versions:update-child-modules
+call mvn versions:commit
+call echo "1. RELEASE %snapshot_version% TO %release_version% DONE."
+
+
+:: 推送到 github
+git add .
+git commit -m "release branch %version%"
+git push
+git status
+
+ECHO "2. PUSH TO GITHUB DONE."
+
+:: 推送到 maven 中央仓库
+call mvn clean deploy -P release
+ECHO "3 PUSH TO MVN CENTER DONE."
diff --git a/release.sh b/release.sh
new file mode 100644
index 0000000..6d145f4
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+echo "============================= RELEASE START..."
+
+## 版本号信息(需要手动指定)
+version="0.0.1"
+newVersion="0.0.2"
+projectName="sisyphus"
+
+# release 项目版本
+## snapshot 版本号
+snapshot_version=${version}"-SNAPSHOT"
+## 新的版本号
+release_version=${version}
+
+mvn versions:set -DgroupId=com.github.houbb -DartifactId=${projectName} -DoldVersion=${snapshot_version} -DnewVersion=${release_version}
+mvn -N versions:update-child-modules
+mvn versions:commit
+echo "1. RELEASE ${snapshot_version} TO ${release_version} DONE."
+
+
+# 推送到 github
+git add .
+git commit -m "release branch ${version}"
+git push
+git status
+
+echo "2. PUSH TO GITHUB DONE."
+
+
+# 推送到 maven 中央仓库
+mvn clean deploy -P release
+
+echo "3. PUSH TO MAVEN CENTER DONE."
+
+# 合并到 master 分支
+branchName="release_"${version} # 分支名称
+git checkout master
+git pull
+git checkout ${branchName}
+git rebase master
+git checkout master
+git merge ${branchName}
+git push
+
+echo "4. MERGE TO MASTER DONE."
+
+
+# 拉取新的分支
+newBranchName="release_"${newVersion}
+git branch ${newBranchName}
+git checkout ${newBranchName}
+git push --set-upstream origin ${newBranchName}
+
+echo "5. NEW BRANCH DONE."
+
+# 修改新分支的版本号
+## snapshot 版本号
+snapshot_new_version=${newVersion}"-SNAPSHOT"
+mvn versions:set -DgroupId=com.github.houbb -DartifactId=${projectName} -DoldVersion=${release_version} -DnewVersion=${snapshot_new_version}
+mvn -N versions:update-child-modules
+mvn versions:commit
+
+git add .
+git commit -m "modify branch ${release_version} TO ${snapshot_new_version}"
+git push
+git status
+echo "6. MODIFY ${release_version} TO ${snapshot_new_version} DONE."
+
+echo "============================= RELEASE END..."
+
+
+# 使用方式:
+# 1. 赋值权限: chmod +x ./release.sh
+# 2. 执行: ./release.sh
+# Last Update Time: 2018-01-20 13:17:06
+# Author: houbb
+
+
diff --git a/release_rm.sh b/release_rm.sh
new file mode 100644
index 0000000..57e6cce
--- /dev/null
+++ b/release_rm.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+echo "============================= RELEASE START..."
+
+## 版本号信息(需要手动指定)
+oldVersion="1.0.0"
+newVersion="1.0.0"
+projectName="sisyphus"
+
+# 删除分支
+oldBranchName="release_"${oldVersion}
+git branch -d ${oldBranchName}
+git push origin --delete ${oldBranchName}
+
+echo "1. Branch remove success..."
+
+# 拉取新的分支
+newBranchName="release_"${newVersion}
+git branch ${newBranchName}
+git checkout ${newBranchName}
+git push --set-upstream origin ${newBranchName}
+
+echo "2. NEW BRANCH DONE."
+
+# 修改新分支的版本号
+## snapshot 版本号
+snapshot_new_version=${newVersion}"-SNAPSHOT"
+mvn versions:set -DgroupId=com.github.houbb -DartifactId=${projectName} -DoldVersion=${release_version} -DnewVersion=${snapshot_new_version}
+mvn -N versions:update-child-modules
+mvn versions:commit
+
+git add .
+git commit -m "modify branch ${release_version} TO ${snapshot_new_version}"
+git push
+git status
+echo "3. MODIFY ${release_version} TO ${snapshot_new_version} DONE."
+
+echo "============================= BRANCH RE-CREATE END..."
+
+echo "============================= BRANCH LIST ============================="
+git branch -a
+
+# 使用方式:
+# 注意:本脚本用于删除分支,谨慎使用!
+# 1. 赋值权限: chmod +x ./release_rm.sh
+# 2. 执行: ./release_rm.sh
+# Last Update Time: 2018-06-21 11:10:42
+# Author: houbb
\ No newline at end of file