diff --git a/00TestTXHY/.keep b/00TestTXHY/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/00TestTXHY/00 \346\265\213\350\257\225\344\270\212\350\257\276\350\247\206\351\242\221\347\216\257\345\242\203.md" "b/00TestTXHY/00 \346\265\213\350\257\225\344\270\212\350\257\276\350\247\206\351\242\221\347\216\257\345\242\203.md" new file mode 100644 index 0000000000000000000000000000000000000000..87a584f859f260528592b603a1c3e0153d0357a6 --- /dev/null +++ "b/00TestTXHY/00 \346\265\213\350\257\225\344\270\212\350\257\276\350\247\206\351\242\221\347\216\257\345\242\203.md" @@ -0,0 +1,9 @@ +#### 00 测试上课视频环境 + +###### 1.开课准备 + +![image-20220911204842575](assets/image-20220911204842575.png) + +###### 2.课前调查 + +![image-20220911205118121](assets/image-20220911205118121.png) \ No newline at end of file diff --git a/00TestTXHY/assets/image-20220911204842575.png b/00TestTXHY/assets/image-20220911204842575.png new file mode 100644 index 0000000000000000000000000000000000000000..7cee35d76ef79e46bc3b7a5f6368229a0db18907 Binary files /dev/null and b/00TestTXHY/assets/image-20220911204842575.png differ diff --git a/00TestTXHY/assets/image-20220911205118121.png b/00TestTXHY/assets/image-20220911205118121.png new file mode 100644 index 0000000000000000000000000000000000000000..c3197764d6795823e1a4b1ed81b95d6e6dca5283 Binary files /dev/null and b/00TestTXHY/assets/image-20220911205118121.png differ diff --git a/01Summary/.keep b/01Summary/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/01Summary/01 \351\205\215\347\275\256\347\256\241\347\220\206\344\270\216\351\241\271\347\233\256\351\203\250\347\275\262\346\246\202\350\277\260.md" "b/01Summary/01 \351\205\215\347\275\256\347\256\241\347\220\206\344\270\216\351\241\271\347\233\256\351\203\250\347\275\262\346\246\202\350\277\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..587c766baa0dca8536abc112caba0d8b7afacbde --- /dev/null +++ "b/01Summary/01 \351\205\215\347\275\256\347\256\241\347\220\206\344\270\216\351\241\271\347\233\256\351\203\250\347\275\262\346\246\202\350\277\260.md" @@ -0,0 +1,97 @@ +## 01 配置管理与项目部署概述 + +#### 1.配置管理CM + +**配置管理( CM:Configuration Management ) 是一个系统工程过程,用于在产品的整个生命周期内建立和维护产品的性能、功能和物理属性与其要求、设计和操作信息的一致性。** + +**1. 配置识别(Configuration Identification)** id--唯一性编码:JAVA_HOME URL URI + +**2. 配置控制(Configuration Control)** 变更 JDK8、JDK11、**JDK17** LTS(Java模块化、云原生) + +**3. 配置状态统计(Configuration status accounting)** 次数、时间、作者...贡献率 + +**4. 配置审核(Configuration audits)**组员、组长审核。Calculator:+-*/%!^... + +**在文档化的基础上,配置管理两个核心,就是需求管理和****变更管理****。** + +**需求管理**,就是挖掘明示的和潜在的客户需求,分模块分层树状管理。成果就是基线(Baseline),产品必须和基线一致。 + +**变更管理**,就是在需要变更的时候怎么管好变更。变更的目的分两种,一种是纠正错误,一种是实施改进。孰能无过,但是如果需求管理做得好,变更执行到位,那错误就会少,企业那点钱,要么省下来变成工资和利润,要么投入到真正的改进。另外,少犯错误,大家心里也痛快点。 + +**20世纪60年代末70年代初,******一千四百万****次修改,Change and Configuration Control变更与配置控制CCC:最早的配置管理工具之一。 + +21世纪初提供**工作空间管理、并行开发支持、过程管理、权限控制、变更管理等**一系列全面的管理能力,已经形成了一个完整的理论体系。 + +**版本控制系统(version control system):版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。** + +**Git最热门的版本控制系统,也是本课程学习重点之一。** + +**SCM三剑客:CVS最初主流、SVN(企业级)、Git(开源开放)** + +工作空间(本机目录) + +![image-20220912091433356](assets/image-20220912091433356.png) + +克隆码云远程库cmpd_gitops + +git clone https://gitee.com/osgisOne/cmpd_gitopsc.git + +![image-20220912091805585](assets/image-20220912091805585.png) + +git status + +![image-20220912092331492](assets/image-20220912092331492.png) + +添加文件git add . + +![git push](assets/image-20220912092447894.png) + +提交git commit -m "修改项目管理的内容" message + +git push #本地仓库推送到码云远程仓库 + +![image-20220912092912028](assets/image-20220912092912028.png) + +#### 2.项目部署PD + +**软件部署(Software Deployment)是为将一个软件系统投入使用而进行的所有活动,包括硬件配置、软件的安装、环境变量设置等。在一些机器上批量安装某一程序也称为软件部署,分为指派与发布两种类型。** + +**蓝绿部署是指在部署过程中同时运行两个版本的程序**。新旧版本。 + +**滚动发布是指在升级过程中,逐台逐台的替换旧版本服务器**。 + +**灰度发布也叫金丝雀发布**。 + +**持续集成 CI**(Continuous Integration):是一种软件项目管理方法,依据资产库(源码,类库等)的变更自动完成编译、测试、部署和反馈。 + +![preview](assets/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg) + +**持续交付CD**(Continuous Delivery):持续交付在持续集成的基础上,**【手工】**将集成后的代码部署到更贴近真实运行环境的「**类生产环境**」(*production-like environments*)中。 + +开发环境--配置高性能高 测试环境--配置最低 (类)生产环境--平均 + +![preview](assets/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg) + +持续部署CD(Continuous Deployment):持续部署则是在持续交付的基础上,把**部署到生产环境的过程自动化**。生产环境就是用户环境。 + +![img](assets/f96f19e4d567aad5006d841963a86e41_b.png) + +**开发运维DevOps** + +![img](assets/devops.jpeg) + +#### 小结 + +配置管理:一致性;需求管理、变更管理;VCS;CVS、SVN、Git + +项目部署:指派和发布;CI/CD;DveOps + +Git Bash(5个指令): + +| 序号 | 名称 | 用法 | 描述 | 示例 | +| ---- | ------ | ------------------- | ---------------------- | --------------------------------------------------------- | +| 1 | clone | git clone URL | 克隆,远程库克隆本地库 | git clone URL https://gitee.com/osgisOne/cmpd_gitopsc.git | +| 2 | status | git status | 库状态 | git status | +| 3 | add | git add . | 添加当前目录所有文件 | git add . | +| 4 | commit | git commit -m "***" | 提交暂存区文件入库 | git commit -m "描述提交内容的信息" | +| 5 | push | git push | 推送本地库至远程库 | git push | \ No newline at end of file diff --git a/01Summary/assets/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg b/01Summary/assets/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9f09c4a0cb45e4124727c89097d11fbd4b3605ec Binary files /dev/null and b/01Summary/assets/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg differ diff --git a/01Summary/assets/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg b/01Summary/assets/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a7f6de6af8c687d22af15a733c4faf2ca06ea0e Binary files /dev/null and b/01Summary/assets/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg differ diff --git a/01Summary/assets/devops.jpeg b/01Summary/assets/devops.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f941da79cb730494d11aa4d8ab8949d5231a8284 Binary files /dev/null and b/01Summary/assets/devops.jpeg differ diff --git a/01Summary/assets/f96f19e4d567aad5006d841963a86e41_b.png b/01Summary/assets/f96f19e4d567aad5006d841963a86e41_b.png new file mode 100644 index 0000000000000000000000000000000000000000..0821ff45dce0b1f52eadc94631c01ecf0f9a4693 Binary files /dev/null and b/01Summary/assets/f96f19e4d567aad5006d841963a86e41_b.png differ diff --git a/01Summary/assets/image-20220912091117539.png b/01Summary/assets/image-20220912091117539.png new file mode 100644 index 0000000000000000000000000000000000000000..e965a647860cd437d3714354ea137cf444082197 Binary files /dev/null and b/01Summary/assets/image-20220912091117539.png differ diff --git a/01Summary/assets/image-20220912091433356.png b/01Summary/assets/image-20220912091433356.png new file mode 100644 index 0000000000000000000000000000000000000000..fff4badf3fb006f0ece68036a3398b2370a6e917 Binary files /dev/null and b/01Summary/assets/image-20220912091433356.png differ diff --git a/01Summary/assets/image-20220912091805585.png b/01Summary/assets/image-20220912091805585.png new file mode 100644 index 0000000000000000000000000000000000000000..79fee1df11561f94a103335365214ee896817598 Binary files /dev/null and b/01Summary/assets/image-20220912091805585.png differ diff --git a/01Summary/assets/image-20220912092331492.png b/01Summary/assets/image-20220912092331492.png new file mode 100644 index 0000000000000000000000000000000000000000..5256407742c0a05d57eaab57ca8270c8f56dbf05 Binary files /dev/null and b/01Summary/assets/image-20220912092331492.png differ diff --git a/01Summary/assets/image-20220912092447894.png b/01Summary/assets/image-20220912092447894.png new file mode 100644 index 0000000000000000000000000000000000000000..e0187d672387110733d696d10442728a397cdadb Binary files /dev/null and b/01Summary/assets/image-20220912092447894.png differ diff --git a/01Summary/assets/image-20220912092912028.png b/01Summary/assets/image-20220912092912028.png new file mode 100644 index 0000000000000000000000000000000000000000..69ceb64923946c8599c89a7283753634d86ad995 Binary files /dev/null and b/01Summary/assets/image-20220912092912028.png differ diff --git a/02Git Bash/.keep b/02Git Bash/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/02Git Bash/02Git Bash\345\237\272\346\234\254\346\223\215\344\275\2341.md" "b/02Git Bash/02Git Bash\345\237\272\346\234\254\346\223\215\344\275\2341.md" new file mode 100644 index 0000000000000000000000000000000000000000..f5f62bf014cfa326b6858acd95330a3b2e77d254 --- /dev/null +++ "b/02Git Bash/02Git Bash\345\237\272\346\234\254\346\223\215\344\275\2341.md" @@ -0,0 +1,157 @@ +## Git Bash基本操作1 + +#### 1.Git由来 + +Linus大神仅用了两周时间,自已用C写了一个分布式版本控制系统。 + +![image-20220924193956700](assets/image-20220924193956700-16640200684767.png) + +林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds,1969年12月28日- ),芬兰赫尔辛基人,著名的电脑程序员,Linux内核的发明人及该计划的合作者 [1] ,毕业于赫尔辛基大学计算机系,1997年至2003年在美国加州硅谷任职于全美达公司(Transmeta Corporation),现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。与妻子托芙(Tove,芬兰前女子空手道冠军)育有三个女孩。著有自传《乐者为王》。 + +因为成功地开发了操作系统Linux内核,托瓦兹获得了2014年计算机先驱奖(For pioneering development of the Linux kernel using the open-source approach)。他的获奖创造了计算机先驱奖历史上的多个第一:第一次授予一位芬兰人;第一次授予一位“60后”(其实只差3天,就是“70后”);获奖成果是在学生时期取得的。 + +![img](assets/fbe8d9e38985e171098b6915197b6ad5-16640200625785.png) + +#### Git特点 + +**1.直接记录快照,而非差异比较** + +**2. 近乎所有操作都是本地执行** + +**3. 时刻保持数据完整性** + +**4. 多数操作仅添加数据** + +#### 2.Git优缺点 + +1. 适合分布式开发,强调个体。 +2. 公共服务器压力和数据量都不会太大。 +3. 速度快、灵活。 +4. 任意两个开发者之间可以很容易的解决冲突。 +5. 离线工作。 + +1. 模式上比SVN更加复杂。 +2. 不符合常规思维。 +3. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。 + +#### 3.Git原理 + +Git 三棵“树”组成。**工作目录树**,持有实际文件;缓存区(Index)**目录树**,临时保存改动;blob**对象树**,由HEAD指向最近一次提交后的结果。 + +![img](assets/trees.png) + +#### 4.Git对象 + +**commit、tree、blob对象和tag对象** + +![img](assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70-166402268099320.png) + +![b5876cad89b3c71a3ec7a0432609b7d1.png](assets/b5876cad89b3c71a3ec7a0432609b7d1.png) + +#### 5.Git工作流 + +Git的工作总共分四层,其中三层是在自己本地也就是说git仓库(通常讲的仓库即指本地仓库),包括了工作目录、暂存区和本地仓库。 + +工作目录(workspace)就是执行命令git init时所在的地方,也就是执行一切文件操作的地方;暂存区(index)和本地仓库(repository)都是在.git目录下,因为它们只是用来存数据的。 + +远程仓库(remote)在中心服务器,也就是做好工作之后推送到远程仓库,或者从远程仓库更新下来最新代码到本地。 + +![img](assets/426b17635b0c685c051500af6a3c2b72.png) + +**Git文件四种状态** + +- Untracked:新增的文件的状态,未受Git管理,记录在工作区 + +- Modified:受Git管理过的文件的改动状态(包括改动内容、删除文件),记录在工作区 + +- Staged:将记录在工作区的文件变动状态通知了Git,记录在暂存区 + +- Unmodified:受Git管理中的文件状态(没有变动),记录在本地仓库/远程仓库 + + ![img](assets/1944911-20201026161437540-1982967373.png) + +#### 6.Git客户端Git Bash操作 + +Shell是文本解释器程序的统称,常见的Shell有sh、bash、ksh、rsh、csh等。sh的全名是Bourne Shell。名字中的玻恩就是这个Shell的作者。而bash的全名是Bourne Again Shell。 + +![image-20220924201030472](assets/image-20220924201030472.png) + +#### 7.签出分支dev + +方法一:先克隆全库,再签出分支:git clone url git checkout develop + +方法二:克隆单分支:git clone -b develop--single-branch https://gitee.com/osgisOne/cmpd_gitopsc.git + +#### 8.本地开发JWSCalculator项目 + +![img](assets/790652e6d83be84e0f501ee0d5f4089d.png) + +该案例已经讲解,将是练习、考试案例,希望很好的理解、掌握。 + +![image-20220924202235507](assets/image-20220924202235507.png) + +#### 9.推送项目至远程库 + +git add . + +git commit -m"*** " + +git push + +#### 10.作业截图 + +![img](assets/58def5b0c0b323fc827c50860a679ba1.png) + +javac *.java sdk/*.java plugins/*.java + +![img](assets/d94529f6aa0270473ff2590bcb5c1ffe.png) + +java gitops.jwscalculator.JwsCalculator + +cd 到目录:src\main\java\gitops\jwscalculator,或者大家使用JavaIDE进行操作。 + +![img](assets/dc24e60412d7e71300f6349958f4d3e3.png) + +编译命令改为: + +javac *.java sdk/*.java plugins/*.java -d . + +原因是有包gitops.jwscalculator,编译时多一个-d参数和后面一个点号. 表示当前目录位置。最后的目录结构与视频中的一样,但是编译时要加参数,以包展开。 + +然后相同目录下: + +java gitops.jwscalculator.JwsCalculator + +![img](assets/9acc16cedc37115cd59c88042feea41d.png) + +**发现Bug:视频中的编译执行操作都是对的,报错是因为插件源码文件夹与命名空间不一致导致的。源码是plugins,命名空间是plugin。加参数-d和指明路径.就可以了。编译时,将各插件class文件放到了plugin文件夹与其命名空间对应。** + +![img](assets/acf29fa6e676056dbb9184b7092cf095.png) + +#### 11.作业视频 + +![image-20220924201845661](assets/image-20220924201845661-166402273778832.png) + +#### 小结 + +​ Git特点:分布式、多分支、开源开发 + +​ Git工作流:正向、方向、差异 + +​ Git四层结构:工作区、缓冲区、本地库、远程库 + +​ Git四个对象:Commit、tree、blob、tag + +​ Git文件四种状态:未跟踪、未修改、已修改、已暂存 + +​ JwsCalculator项目7个版本 + +| 序号 | 名称 | 用法 | 描述 | 示例 | +| ---- | -------- | -------------------- | ---------------------- | --------------------------------------------------------- | +| 1 | clone | git clone URL | 克隆,远程库克隆本地库 | git clone URL https://gitee.com/osgisOne/cmpd_gitopsc.git | +| 2 | status | git status | 库状态 | git status | +| 3 | add | git add . | 添加当前目录所有文件 | git add . | +| 4 | commit | git commit -m "***" | 提交暂存区文件入库 | git commit -m "描述提交内容的信息" | +| 5 | push | git push | 推送本地库至远程库 | git push | +| 6 | checkout | git checkout develop | 签出分支 | git checkout develop | + diff --git a/02Git Bash/assets/1944911-20201026161437540-1982967373.png b/02Git Bash/assets/1944911-20201026161437540-1982967373.png new file mode 100644 index 0000000000000000000000000000000000000000..a7963653e4537cf5efce12e72e3bfe791d871228 Binary files /dev/null and b/02Git Bash/assets/1944911-20201026161437540-1982967373.png differ diff --git a/02Git Bash/assets/426b17635b0c685c051500af6a3c2b72.png b/02Git Bash/assets/426b17635b0c685c051500af6a3c2b72.png new file mode 100644 index 0000000000000000000000000000000000000000..bc008bf3f4b3d0156dde2833ccc17c30cf6840ce Binary files /dev/null and b/02Git Bash/assets/426b17635b0c685c051500af6a3c2b72.png differ diff --git a/02Git Bash/assets/58def5b0c0b323fc827c50860a679ba1.png b/02Git Bash/assets/58def5b0c0b323fc827c50860a679ba1.png new file mode 100644 index 0000000000000000000000000000000000000000..c908a3424512463b4d6e96deb9e23be307ba34bd Binary files /dev/null and b/02Git Bash/assets/58def5b0c0b323fc827c50860a679ba1.png differ diff --git a/02Git Bash/assets/790652e6d83be84e0f501ee0d5f4089d.png b/02Git Bash/assets/790652e6d83be84e0f501ee0d5f4089d.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6c449aa1ce2c6704069ad5af730b27b1da7125 Binary files /dev/null and b/02Git Bash/assets/790652e6d83be84e0f501ee0d5f4089d.png differ diff --git a/02Git Bash/assets/9acc16cedc37115cd59c88042feea41d.png b/02Git Bash/assets/9acc16cedc37115cd59c88042feea41d.png new file mode 100644 index 0000000000000000000000000000000000000000..9f29f2ace54615cc35b34126dca707b65179faf0 Binary files /dev/null and b/02Git Bash/assets/9acc16cedc37115cd59c88042feea41d.png differ diff --git a/02Git Bash/assets/acf29fa6e676056dbb9184b7092cf095.png b/02Git Bash/assets/acf29fa6e676056dbb9184b7092cf095.png new file mode 100644 index 0000000000000000000000000000000000000000..4fae7664149d27e3ad27dbac6c11a3b246f6a2a5 Binary files /dev/null and b/02Git Bash/assets/acf29fa6e676056dbb9184b7092cf095.png differ diff --git a/02Git Bash/assets/b5876cad89b3c71a3ec7a0432609b7d1.png b/02Git Bash/assets/b5876cad89b3c71a3ec7a0432609b7d1.png new file mode 100644 index 0000000000000000000000000000000000000000..912c2a198c12b9e467bf64a2346d90ff46ffa8f5 Binary files /dev/null and b/02Git Bash/assets/b5876cad89b3c71a3ec7a0432609b7d1.png differ diff --git a/02Git Bash/assets/d94529f6aa0270473ff2590bcb5c1ffe.png b/02Git Bash/assets/d94529f6aa0270473ff2590bcb5c1ffe.png new file mode 100644 index 0000000000000000000000000000000000000000..943482158ebb26c36f43adfcebb4ba7c1a417f2e Binary files /dev/null and b/02Git Bash/assets/d94529f6aa0270473ff2590bcb5c1ffe.png differ diff --git a/02Git Bash/assets/dc24e60412d7e71300f6349958f4d3e3.png b/02Git Bash/assets/dc24e60412d7e71300f6349958f4d3e3.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab7bdd97646e87b00800a52d02e47dd691c2bc1 Binary files /dev/null and b/02Git Bash/assets/dc24e60412d7e71300f6349958f4d3e3.png differ diff --git a/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5-16640200625785.png b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5-16640200625785.png new file mode 100644 index 0000000000000000000000000000000000000000..898ad0462803646405291be9baec8fd55763d6b0 Binary files /dev/null and b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5-16640200625785.png differ diff --git a/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5.png b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5.png new file mode 100644 index 0000000000000000000000000000000000000000..898ad0462803646405291be9baec8fd55763d6b0 Binary files /dev/null and b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5.png differ diff --git a/02Git Bash/assets/image-20220924193956700-16640200684767.png b/02Git Bash/assets/image-20220924193956700-16640200684767.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4f38ec1d43a9faaffdc81b126f15b1c26d5bd2 Binary files /dev/null and b/02Git Bash/assets/image-20220924193956700-16640200684767.png differ diff --git a/02Git Bash/assets/image-20220924193956700.png b/02Git Bash/assets/image-20220924193956700.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4f38ec1d43a9faaffdc81b126f15b1c26d5bd2 Binary files /dev/null and b/02Git Bash/assets/image-20220924193956700.png differ diff --git a/02Git Bash/assets/image-20220924201030472.png b/02Git Bash/assets/image-20220924201030472.png new file mode 100644 index 0000000000000000000000000000000000000000..967a9d3190ee1e64c86b6c7b648f63971cc62918 Binary files /dev/null and b/02Git Bash/assets/image-20220924201030472.png differ diff --git a/02Git Bash/assets/image-20220924201845661-166402273778832.png b/02Git Bash/assets/image-20220924201845661-166402273778832.png new file mode 100644 index 0000000000000000000000000000000000000000..397f02a72a4a1989c847432e076bb0a540ada420 Binary files /dev/null and b/02Git Bash/assets/image-20220924201845661-166402273778832.png differ diff --git a/02Git Bash/assets/image-20220924201845661.png b/02Git Bash/assets/image-20220924201845661.png new file mode 100644 index 0000000000000000000000000000000000000000..397f02a72a4a1989c847432e076bb0a540ada420 Binary files /dev/null and b/02Git Bash/assets/image-20220924201845661.png differ diff --git a/02Git Bash/assets/image-20220924202235507.png b/02Git Bash/assets/image-20220924202235507.png new file mode 100644 index 0000000000000000000000000000000000000000..b23318789885b8e980c143a849b35c74ac9f17b9 Binary files /dev/null and b/02Git Bash/assets/image-20220924202235507.png differ diff --git a/02Git Bash/assets/trees.png b/02Git Bash/assets/trees.png new file mode 100644 index 0000000000000000000000000000000000000000..92cbb2b4492f00fc5ccd9eace6ac22ff261393bb Binary files /dev/null and b/02Git Bash/assets/trees.png differ diff --git a/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70-166402268099320.png b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70-166402268099320.png new file mode 100644 index 0000000000000000000000000000000000000000..4575330b8451734f42f20214dcbb313aafef7d7a Binary files /dev/null and b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70-166402268099320.png differ diff --git a/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70.png b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70.png new file mode 100644 index 0000000000000000000000000000000000000000..4575330b8451734f42f20214dcbb313aafef7d7a Binary files /dev/null and b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70.png differ diff --git a/03Git GUI/.keep b/03Git GUI/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/04Git IDE/.keep b/04Git IDE/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/05Git Hub/.keep b/05Git Hub/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/06Gitee/.keep b/06Gitee/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/07Git Server/.keep b/07Git Server/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/08Gitea/.keep b/08Gitea/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/09Jenkins/.keep b/09Jenkins/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/10GitOps/.keep b/10GitOps/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/11PipeLine/.keep b/11PipeLine/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/12MockExamination/.keep b/12MockExamination/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/README.md b/README.md index c1629ba02248901db0f9b4aaab5308dfe4a28ebf..61cfc077bc2fe8bf9f3ea291caf189ac42bf3050 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,116 @@ # cmpd_gitops -#### 介绍 21软件技术专业1、2班《配置管理与项目部署》课程仓库,教学笔记与仓库操作和部署演示。 -#### 软件架构 -软件架构说明 +## 1步:创建笔记库 +![img](assets/8a7fef4266a0e5b5b7d367effe1dd9f8.png) -#### 安装教程 +## 2步:Feature分支创建文件夹 -1. xxxx -2. xxxx -3. xxxx +![img](assets/3d4c7cbaa397746762c39d0471ba1229.png) -#### 使用说明 +![img](assets/36629d39e54c5cc27f416bb5fe8f5b5c.png) -1. xxxx -2. xxxx -3. xxxx +## 3步:笔记库地址 -#### 参与贡献 +https://gitee.com/osgisOne/cmpd_gitopsc.git -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +## 4步:克隆笔记库(全克隆) +![img](assets/7832d7195d177b9a19e82fd1395a652c.png) -#### 特技 +![img](assets/7b56d204af79ed211527b248cec5e66f.png) -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +## 5步:克隆笔记库feature分支(方法1) + +git clone -b feature --single-branch https://gitee.com/osgisOne/cmpd_gitopsc.git + +![img](assets/4dd13c9dc21257ed7d63cb819393fea8.png) + +删除本地库,再克隆 + +![img](assets/ad6cf6e4d068ac46d462569a759a0089.png) + +切换目录到cmpd_gitopsc + +![img](assets/b5e221ac6e3f723370945bb4961bcfac.png) + +![img](assets/14515d9ef139a4648eb74a299978ad45.png) + +## 6步:本地库创建并切换feature支(方法2) + +先全克隆远程库,再映射远程库 + +git checkout -b feature origin/feature + +![img](assets/2250a5211f74854920bd5c6c624d9dd8.png) + +![img](assets/1f343ae526e859b83558a478fd11d401.png) + +## 7步:Typroa编辑README.md + +![img](assets/919f40c3dfa21c611f17f2808275d06b.png) + +## 8步:编辑前后的状态 + +![image-20220827162157938](assets/image-20220827162157938.png) + +git status + +## 9步:添加提交本地库 + +git add . + +git commit -m "修改Readme文件" + +## 10步:推送至远程库 + +git push + +(输入Gitee的账号、密码) + +![image-20220827162910904](assets/image-20220827162910904.png) + +## 11步:远程库查看 + +![image-20220827164116168](assets/image-20220827164116168.png) + +## 12步:重复7-11步 + +![image-20220827163506237](assets/image-20220827163506237.png) + +## 13步:第二次访问Pull + +![image-20220827170652893](assets/image-20220827170652893.png) + +新增“jwscalculator项目”文件夹,所以,总是pull开始每一天的工作。 + +## 14步:上传jwscalculator项目源码 + +## ![image-20220827171050673](assets/image-20220827171050673.png) + +复制源码到本地库的“cmpd_gitopsc\jwscalculator项目”目录 +**注意:删除原来项目文件夹下的各版本中的.git库** + +![image-20220827181701099](assets/image-20220827181701099.png) + +## 15步:编辑本文档并重复9-11步 + +![image-20220827173525231](assets/image-20220827173525231.png) + +![image-20220827173556105](assets/image-20220827173556105.png) + +![image-20220827173621991](assets/image-20220827173621991.png) + +![image-20220827173703955](assets/image-20220827173703955.png) + +## 16步:学习笔记撰写流程完毕 + +![image-20220827174056604](assets/image-20220827174056604.png) + +![image-20220827174124332](assets/image-20220827174124332.png) + +## 小结 + +创建Gitee远程库,选择Feature或Develop分支,克隆全库或单分支到本地库,推荐md格式,使用Typora工具,修改学习笔记,增加提交本地库,再推送远程库。后续,先拉后推,期间重复着:编程学习笔记,提交推送。 diff --git a/assets/14515d9ef139a4648eb74a299978ad45.png b/assets/14515d9ef139a4648eb74a299978ad45.png new file mode 100644 index 0000000000000000000000000000000000000000..5b3b5d2813e2464ac1a6c138e0281d933be52062 Binary files /dev/null and b/assets/14515d9ef139a4648eb74a299978ad45.png differ diff --git a/assets/1f343ae526e859b83558a478fd11d401.png b/assets/1f343ae526e859b83558a478fd11d401.png new file mode 100644 index 0000000000000000000000000000000000000000..974f3d627415f6b92d0f53693e0a90be7a4646ff Binary files /dev/null and b/assets/1f343ae526e859b83558a478fd11d401.png differ diff --git a/assets/2250a5211f74854920bd5c6c624d9dd8.png b/assets/2250a5211f74854920bd5c6c624d9dd8.png new file mode 100644 index 0000000000000000000000000000000000000000..02b69e9334b998d67824ef137697704aab51b073 Binary files /dev/null and b/assets/2250a5211f74854920bd5c6c624d9dd8.png differ diff --git a/assets/36629d39e54c5cc27f416bb5fe8f5b5c.png b/assets/36629d39e54c5cc27f416bb5fe8f5b5c.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d74cdc0570218f51c7d0f7e6e83852b8b8cb6b Binary files /dev/null and b/assets/36629d39e54c5cc27f416bb5fe8f5b5c.png differ diff --git a/assets/3d4c7cbaa397746762c39d0471ba1229.png b/assets/3d4c7cbaa397746762c39d0471ba1229.png new file mode 100644 index 0000000000000000000000000000000000000000..4866c663d9e223cbfc9414a70cd16b5ee3c4a38b Binary files /dev/null and b/assets/3d4c7cbaa397746762c39d0471ba1229.png differ diff --git a/assets/4dd13c9dc21257ed7d63cb819393fea8.png b/assets/4dd13c9dc21257ed7d63cb819393fea8.png new file mode 100644 index 0000000000000000000000000000000000000000..626b9e3cee10a5c216c63c0f7b556252c6f02d42 Binary files /dev/null and b/assets/4dd13c9dc21257ed7d63cb819393fea8.png differ diff --git a/assets/7832d7195d177b9a19e82fd1395a652c.png b/assets/7832d7195d177b9a19e82fd1395a652c.png new file mode 100644 index 0000000000000000000000000000000000000000..9acccc6f19e146c11da60398f4a78761f37eef2a Binary files /dev/null and b/assets/7832d7195d177b9a19e82fd1395a652c.png differ diff --git a/assets/7b56d204af79ed211527b248cec5e66f.png b/assets/7b56d204af79ed211527b248cec5e66f.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4c53658ee448234f8a93c8a09970165ee4970b Binary files /dev/null and b/assets/7b56d204af79ed211527b248cec5e66f.png differ diff --git a/assets/8a7fef4266a0e5b5b7d367effe1dd9f8.png b/assets/8a7fef4266a0e5b5b7d367effe1dd9f8.png new file mode 100644 index 0000000000000000000000000000000000000000..c8c3ef8b7eee8ac721c82ca9ba680f723e787c4c Binary files /dev/null and b/assets/8a7fef4266a0e5b5b7d367effe1dd9f8.png differ diff --git a/assets/919f40c3dfa21c611f17f2808275d06b.png b/assets/919f40c3dfa21c611f17f2808275d06b.png new file mode 100644 index 0000000000000000000000000000000000000000..376830190681a3816857bfe613cfbac0d1147bb7 Binary files /dev/null and b/assets/919f40c3dfa21c611f17f2808275d06b.png differ diff --git a/assets/ad6cf6e4d068ac46d462569a759a0089.png b/assets/ad6cf6e4d068ac46d462569a759a0089.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb4ae1e9b9422b174aaf546f3fefc1ecf63aeaa Binary files /dev/null and b/assets/ad6cf6e4d068ac46d462569a759a0089.png differ diff --git a/assets/b5e221ac6e3f723370945bb4961bcfac.png b/assets/b5e221ac6e3f723370945bb4961bcfac.png new file mode 100644 index 0000000000000000000000000000000000000000..3c00f74ad98787fe43b8fe069f60522653d6e2c0 Binary files /dev/null and b/assets/b5e221ac6e3f723370945bb4961bcfac.png differ diff --git a/assets/image-20220827162157938.png b/assets/image-20220827162157938.png new file mode 100644 index 0000000000000000000000000000000000000000..77170195c2cb3a8a35376ba45f8c50dcf7337a9a Binary files /dev/null and b/assets/image-20220827162157938.png differ diff --git a/assets/image-20220827162910904.png b/assets/image-20220827162910904.png new file mode 100644 index 0000000000000000000000000000000000000000..c54778deb2f44757856acdefc13152a51ab8ee23 Binary files /dev/null and b/assets/image-20220827162910904.png differ diff --git a/assets/image-20220827163506237.png b/assets/image-20220827163506237.png new file mode 100644 index 0000000000000000000000000000000000000000..2598ebb3916e7931b67ab17048053dab41ff3b98 Binary files /dev/null and b/assets/image-20220827163506237.png differ diff --git a/assets/image-20220827164116168.png b/assets/image-20220827164116168.png new file mode 100644 index 0000000000000000000000000000000000000000..acefebce8c30ac5379caed76ba3065f86982e628 Binary files /dev/null and b/assets/image-20220827164116168.png differ diff --git a/assets/image-20220827170652893.png b/assets/image-20220827170652893.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3ba46a48c4bceb88da4ff133f8dc2353e2c771 Binary files /dev/null and b/assets/image-20220827170652893.png differ diff --git a/assets/image-20220827171050673.png b/assets/image-20220827171050673.png new file mode 100644 index 0000000000000000000000000000000000000000..67da15fd72d09c4b5a230fa1babdc8e17cfa1fc8 Binary files /dev/null and b/assets/image-20220827171050673.png differ diff --git a/assets/image-20220827173525231.png b/assets/image-20220827173525231.png new file mode 100644 index 0000000000000000000000000000000000000000..e95ea2eb8c693bf4da1885fb818fc079fe3f3f8f Binary files /dev/null and b/assets/image-20220827173525231.png differ diff --git a/assets/image-20220827173556105.png b/assets/image-20220827173556105.png new file mode 100644 index 0000000000000000000000000000000000000000..8b820c0dc535d70e2668007d6a6976874dcc4477 Binary files /dev/null and b/assets/image-20220827173556105.png differ diff --git a/assets/image-20220827173621991.png b/assets/image-20220827173621991.png new file mode 100644 index 0000000000000000000000000000000000000000..7c48a536f4665f2aefdb1682ecc812b8b125e47e Binary files /dev/null and b/assets/image-20220827173621991.png differ diff --git a/assets/image-20220827173703955.png b/assets/image-20220827173703955.png new file mode 100644 index 0000000000000000000000000000000000000000..37d0cdc494583cedbbdcb30d8029c86edb8a5ff7 Binary files /dev/null and b/assets/image-20220827173703955.png differ diff --git a/assets/image-20220827174056604.png b/assets/image-20220827174056604.png new file mode 100644 index 0000000000000000000000000000000000000000..74710b249a5cade9f65ad23304afb189268ad126 Binary files /dev/null and b/assets/image-20220827174056604.png differ diff --git a/assets/image-20220827174124332.png b/assets/image-20220827174124332.png new file mode 100644 index 0000000000000000000000000000000000000000..1eaf1c1b9399cb290e6b80a6f2780cc374791ff5 Binary files /dev/null and b/assets/image-20220827174124332.png differ diff --git a/assets/image-20220827181701099.png b/assets/image-20220827181701099.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3f3e7aca9df6a1785bdc32a69693b2484ce47b Binary files /dev/null and b/assets/image-20220827181701099.png differ diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/.gitignore" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a --- /dev/null +++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/.gitignore" @@ -0,0 +1,25 @@ +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/Jenkinsfile" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/Jenkinsfile" new file mode 100644 index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e --- /dev/null +++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/Jenkinsfile" @@ -0,0 +1,70 @@ +pipeline{ + agent any + stages{ + stage('编译源码') { + steps { + bat '''mkdir target + cd target + mkdir classes + cd ..\\src\\main\\java + javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes''' + } + } + stage('生成jar ') { + steps { + bat '''cd target\\classes + jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops''' + } + } + stage('生成密钥'){ + steps{ + bat '''cd target\\classes + keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"''' + } + } + stage('签名jar') { + steps { + bat '''cd target\\classes + jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass + move jwscalculator.jar ..\\..\\src\\main\\webapp''' + } + } + + stage('打包War') { + steps { + bat '''cd src\\main\\webapp + jar cfM jwscalculator.war *''' + } + } + stage('部署tomcat'){ + steps{ + deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war' + } + } + stage('本地运行jar'){ + steps{ + bat '''cd src\\main\\webapp + java -jar jwscalculator.jar''' + } + } + stage('本地运行jnlp'){ + steps{ + bat '''cd src\\main\\webapp + javaws jwscalculator.jnlp''' + } + } + stage('WebStart'){ + steps{ + bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html' + } + } + stage('清除'){ + steps{ + bat '''rd /S /Q target + cd src\\main\\webapp + del jwscalculator.jar + del jwscalculator.war''' + } + } + } +} diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/README.md" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858 --- /dev/null +++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/README.md" @@ -0,0 +1,2 @@ +# jwscalculator + diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/java/gitops/jwscalculator/JwsCalculator.java" new file mode 100644 index 0000000000000000000000000000000000000000..5c5361c3baa3e3aa53df766c738f8644c10984fc --- /dev/null +++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/java/gitops/jwscalculator/JwsCalculator.java" @@ -0,0 +1,40 @@ +package gitops.jwscalculator; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; + +import javax.swing.JFrame; +import javax.swing.JTextField; + +public class JwsCalculator { + + public static void main(String[] args) { + CalculatorUI ui=new CalculatorUI("JwsCalculator"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("ӭμӡùĿ𡷿ԣ"); + + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("",Font.PLAIN,32)); + textField.setEditable(false); + } + +} diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/giteejwscalculator.jnlp" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/giteejwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..cd8a93138c3901a908c0f88897dc6f37b02d1b04 --- /dev/null +++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/giteejwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/index.html" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..747064ba9c489dc5432b191cd49095385f5280c0 --- /dev/null +++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/index.html" @@ -0,0 +1,14 @@ + + + + +初始项目 + + +

本地网站localhost:8080

+ WebStart启动jwscalculator +
+

码云服务osgisOne.gitee.io

+ WebStart启动jwscalculator + + diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/jwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8 --- /dev/null +++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/jwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/.gitignore" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a --- /dev/null +++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/.gitignore" @@ -0,0 +1,25 @@ +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/Jenkinsfile" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/Jenkinsfile" new file mode 100644 index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e --- /dev/null +++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/Jenkinsfile" @@ -0,0 +1,70 @@ +pipeline{ + agent any + stages{ + stage('编译源码') { + steps { + bat '''mkdir target + cd target + mkdir classes + cd ..\\src\\main\\java + javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes''' + } + } + stage('生成jar ') { + steps { + bat '''cd target\\classes + jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops''' + } + } + stage('生成密钥'){ + steps{ + bat '''cd target\\classes + keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"''' + } + } + stage('签名jar') { + steps { + bat '''cd target\\classes + jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass + move jwscalculator.jar ..\\..\\src\\main\\webapp''' + } + } + + stage('打包War') { + steps { + bat '''cd src\\main\\webapp + jar cfM jwscalculator.war *''' + } + } + stage('部署tomcat'){ + steps{ + deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war' + } + } + stage('本地运行jar'){ + steps{ + bat '''cd src\\main\\webapp + java -jar jwscalculator.jar''' + } + } + stage('本地运行jnlp'){ + steps{ + bat '''cd src\\main\\webapp + javaws jwscalculator.jnlp''' + } + } + stage('WebStart'){ + steps{ + bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html' + } + } + stage('清除'){ + steps{ + bat '''rd /S /Q target + cd src\\main\\webapp + del jwscalculator.jar + del jwscalculator.war''' + } + } + } +} diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/README.md" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858 --- /dev/null +++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/README.md" @@ -0,0 +1,2 @@ +# jwscalculator + diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/java/gitops/jwscalculator/JwsCalculator.java" new file mode 100644 index 0000000000000000000000000000000000000000..afd7114906fc092bc0f1aa05d7aa9c5cf89c3790 --- /dev/null +++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/java/gitops/jwscalculator/JwsCalculator.java" @@ -0,0 +1,72 @@ +package gitops.jwscalculator; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class JwsCalculator { + + public static void main(String[] args) { + CalculatorUI ui=new CalculatorUI("JwsCalculator:"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("0"); + + private JPanel panel=new JPanel(new GridLayout(4,4)); + private JButton bt11=new JButton("7"); + private JButton bt12=new JButton("8"); + private JButton bt13=new JButton("9"); + private JButton bt14=new JButton("/"); + private JButton bt21=new JButton("4"); + private JButton bt22=new JButton("5"); + private JButton bt23=new JButton("6"); + private JButton bt24=new JButton("*"); + private JButton bt31=new JButton("1"); + private JButton bt32=new JButton("2"); + private JButton bt33=new JButton("3"); + private JButton bt34=new JButton("-"); + private JButton bt41=new JButton("0"); + private JButton bt42=new JButton("."); + private JButton bt43=new JButton("="); + private JButton bt44=new JButton("+"); + JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44}; + + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("",Font.PLAIN,32)); + textField.setEditable(false); + + this.add(panel,BorderLayout.CENTER); + panel.setPreferredSize(new Dimension(300,350)); + for(int i=0;i<16;i++){ + jb[i].setFont(new Font("",Font.BOLD,32)); + panel.add(jb[i]); + } + + } + +} diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/giteejwscalculator.jnlp" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/giteejwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..cd8a93138c3901a908c0f88897dc6f37b02d1b04 --- /dev/null +++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/giteejwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/index.html" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..5d390fe33a76db9fd0cb1290820fe135de65f145 --- /dev/null +++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/index.html" @@ -0,0 +1,14 @@ + + + + +主界面 + + +

本地网站localhost:8080

+ WebStart启动jwscalculator +
+

码云服务osgisOne.gitee.io

+ WebStart启动jwscalculator + + diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/jwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8 --- /dev/null +++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/jwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/.gitignore" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a --- /dev/null +++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/.gitignore" @@ -0,0 +1,25 @@ +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/Jenkinsfile" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/Jenkinsfile" new file mode 100644 index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e --- /dev/null +++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/Jenkinsfile" @@ -0,0 +1,70 @@ +pipeline{ + agent any + stages{ + stage('编译源码') { + steps { + bat '''mkdir target + cd target + mkdir classes + cd ..\\src\\main\\java + javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes''' + } + } + stage('生成jar ') { + steps { + bat '''cd target\\classes + jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops''' + } + } + stage('生成密钥'){ + steps{ + bat '''cd target\\classes + keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"''' + } + } + stage('签名jar') { + steps { + bat '''cd target\\classes + jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass + move jwscalculator.jar ..\\..\\src\\main\\webapp''' + } + } + + stage('打包War') { + steps { + bat '''cd src\\main\\webapp + jar cfM jwscalculator.war *''' + } + } + stage('部署tomcat'){ + steps{ + deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war' + } + } + stage('本地运行jar'){ + steps{ + bat '''cd src\\main\\webapp + java -jar jwscalculator.jar''' + } + } + stage('本地运行jnlp'){ + steps{ + bat '''cd src\\main\\webapp + javaws jwscalculator.jnlp''' + } + } + stage('WebStart'){ + steps{ + bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html' + } + } + stage('清除'){ + steps{ + bat '''rd /S /Q target + cd src\\main\\webapp + del jwscalculator.jar + del jwscalculator.war''' + } + } + } +} diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/README.md" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858 --- /dev/null +++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/README.md" @@ -0,0 +1,2 @@ +# jwscalculator + diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/java/gitops/jwscalculator/JwsCalculator.java" new file mode 100644 index 0000000000000000000000000000000000000000..bbe06ce92b6e028c75934430fa73c88a59dc42d5 --- /dev/null +++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/java/gitops/jwscalculator/JwsCalculator.java" @@ -0,0 +1,113 @@ +package gitops.jwscalculator; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class JwsCalculator { + + public static void main(String[] args) { + CalculatorUI ui=new CalculatorUI("JwsCalculator:+ť¼Ӧ"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("0"); + + private JPanel panel=new JPanel(new GridLayout(4,4)); + private JButton bt11=new JButton("7"); + private JButton bt12=new JButton("8"); + private JButton bt13=new JButton("9"); + private JButton bt14=new JButton("/"); + private JButton bt21=new JButton("4"); + private JButton bt22=new JButton("5"); + private JButton bt23=new JButton("6"); + private JButton bt24=new JButton("*"); + private JButton bt31=new JButton("1"); + private JButton bt32=new JButton("2"); + private JButton bt33=new JButton("3"); + private JButton bt34=new JButton("-"); + private JButton bt41=new JButton("0"); + private JButton bt42=new JButton("."); + private JButton bt43=new JButton("="); + private JButton bt44=new JButton("+"); + JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44}; + + class MyHandler implements ActionListener + { + String str=""; + + @Override + public void actionPerformed(ActionEvent e) { + JButton source=(JButton) e.getSource(); + + if(source==bt43) + { + str=str+""; + textField.setText(str); + + int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION); + if(res==JOptionPane.YES_OPTION) + { + str=""; + textField.setText("0"); + } + else + System.exit(0); + + } + else + { + str=str+source.getText(); + textField.setText(str); + } + } + } + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + MyHandler myHandler=new MyHandler(); + this.ListenerAdd(myHandler); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("",Font.PLAIN,32)); + textField.setEditable(false); + + this.add(panel,BorderLayout.CENTER); + panel.setPreferredSize(new Dimension(300,350)); + for(int i=0;i<16;i++){ + jb[i].setFont(new Font("",Font.BOLD,32)); + panel.add(jb[i]); + } + + } + + private void ListenerAdd(MyHandler myHandler) + { + for(int i=0;i<16;i++){ + jb[i].addActionListener(myHandler); + } + } + +} \ No newline at end of file diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/giteejwscalculator.jnlp" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/giteejwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..cd8a93138c3901a908c0f88897dc6f37b02d1b04 --- /dev/null +++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/giteejwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/index.html" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..0a0eb17ab5afd1d68d1a52bce3f8101e79440663 --- /dev/null +++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/index.html" @@ -0,0 +1,14 @@ + + + + +按钮事件响应 + + +

本地网站localhost:8080

+ WebStart启动jwscalculator +
+

码云服务osgisOne.gitee.io

+ WebStart启动jwscalculator + + diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/jwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8 --- /dev/null +++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/jwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/.gitignore" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a --- /dev/null +++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/.gitignore" @@ -0,0 +1,25 @@ +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/Jenkinsfile" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/Jenkinsfile" new file mode 100644 index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e --- /dev/null +++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/Jenkinsfile" @@ -0,0 +1,70 @@ +pipeline{ + agent any + stages{ + stage('编译源码') { + steps { + bat '''mkdir target + cd target + mkdir classes + cd ..\\src\\main\\java + javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes''' + } + } + stage('生成jar ') { + steps { + bat '''cd target\\classes + jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops''' + } + } + stage('生成密钥'){ + steps{ + bat '''cd target\\classes + keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"''' + } + } + stage('签名jar') { + steps { + bat '''cd target\\classes + jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass + move jwscalculator.jar ..\\..\\src\\main\\webapp''' + } + } + + stage('打包War') { + steps { + bat '''cd src\\main\\webapp + jar cfM jwscalculator.war *''' + } + } + stage('部署tomcat'){ + steps{ + deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war' + } + } + stage('本地运行jar'){ + steps{ + bat '''cd src\\main\\webapp + java -jar jwscalculator.jar''' + } + } + stage('本地运行jnlp'){ + steps{ + bat '''cd src\\main\\webapp + javaws jwscalculator.jnlp''' + } + } + stage('WebStart'){ + steps{ + bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html' + } + } + stage('清除'){ + steps{ + bat '''rd /S /Q target + cd src\\main\\webapp + del jwscalculator.jar + del jwscalculator.war''' + } + } + } +} diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/README.md" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858 --- /dev/null +++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/README.md" @@ -0,0 +1,2 @@ +# jwscalculator + diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/java/gitops/jwscalculator/JwsCalculator.java" new file mode 100644 index 0000000000000000000000000000000000000000..0489543790e2f2f6336091381127256a0e306a0f --- /dev/null +++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/java/gitops/jwscalculator/JwsCalculator.java" @@ -0,0 +1,155 @@ +package gitops.jwscalculator; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class JwsCalculator { + + public static void main(String[] args) { + CalculatorUI ui=new CalculatorUI("JwsCalculator:主界面+按钮事件响应+解析字符串"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("0"); + + private JPanel panel=new JPanel(new GridLayout(4,4)); + private JButton bt11=new JButton("7"); + private JButton bt12=new JButton("8"); + private JButton bt13=new JButton("9"); + private JButton bt14=new JButton("/"); + private JButton bt21=new JButton("4"); + private JButton bt22=new JButton("5"); + private JButton bt23=new JButton("6"); + private JButton bt24=new JButton("*"); + private JButton bt31=new JButton("1"); + private JButton bt32=new JButton("2"); + private JButton bt33=new JButton("3"); + private JButton bt34=new JButton("-"); + private JButton bt41=new JButton("0"); + private JButton bt42=new JButton("."); + private JButton bt43=new JButton("="); + private JButton bt44=new JButton("+"); + JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44}; + + class MyHandler implements ActionListener + { + String str=""; + + @Override + public void actionPerformed(ActionEvent e) { + JButton source=(JButton) e.getSource(); + + if(source==bt43) + { + str=str+"= "+CalcString.getRes(str); + textField.setText(str); + + int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION); + if(res==JOptionPane.YES_OPTION) + { + str=""; + textField.setText("0"); + } + else + System.exit(0); + + } + else + { + str=str+source.getText(); + textField.setText(str); + } + } + } + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + MyHandler myHandler=new MyHandler(); + this.ListenerAdd(myHandler); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("楷体",Font.PLAIN,32)); + textField.setEditable(false); + + this.add(panel,BorderLayout.CENTER); + panel.setPreferredSize(new Dimension(300,350)); + for(int i=0;i<16;i++){ + jb[i].setFont(new Font("楷体",Font.BOLD,32)); + panel.add(jb[i]); + } + + } + + private void ListenerAdd(MyHandler myHandler) + { + for(int i=0;i<16;i++){ + jb[i].addActionListener(myHandler); + } + } + +} +class CalcString +{ + public static double getRes(String str) + { + String s=""; + double n1 = 0,n2,res = 0; + char op = 0; + + for(int i=0;i + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/index.html" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..e02b5d732d1e05feb0f505387dc3cb0125260d07 --- /dev/null +++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/index.html" @@ -0,0 +1,14 @@ + + + + +解析字符串 + + +

本地网站localhost:8080

+ WebStart启动jwscalculator +
+

码云服务osgisOne.gitee.io

+ WebStart启动jwscalculator + + diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/jwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8 --- /dev/null +++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/jwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/.gitignore" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a --- /dev/null +++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/.gitignore" @@ -0,0 +1,25 @@ +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/Jenkinsfile" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/Jenkinsfile" new file mode 100644 index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e --- /dev/null +++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/Jenkinsfile" @@ -0,0 +1,70 @@ +pipeline{ + agent any + stages{ + stage('编译源码') { + steps { + bat '''mkdir target + cd target + mkdir classes + cd ..\\src\\main\\java + javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes''' + } + } + stage('生成jar ') { + steps { + bat '''cd target\\classes + jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops''' + } + } + stage('生成密钥'){ + steps{ + bat '''cd target\\classes + keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"''' + } + } + stage('签名jar') { + steps { + bat '''cd target\\classes + jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass + move jwscalculator.jar ..\\..\\src\\main\\webapp''' + } + } + + stage('打包War') { + steps { + bat '''cd src\\main\\webapp + jar cfM jwscalculator.war *''' + } + } + stage('部署tomcat'){ + steps{ + deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war' + } + } + stage('本地运行jar'){ + steps{ + bat '''cd src\\main\\webapp + java -jar jwscalculator.jar''' + } + } + stage('本地运行jnlp'){ + steps{ + bat '''cd src\\main\\webapp + javaws jwscalculator.jnlp''' + } + } + stage('WebStart'){ + steps{ + bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html' + } + } + stage('清除'){ + steps{ + bat '''rd /S /Q target + cd src\\main\\webapp + del jwscalculator.jar + del jwscalculator.war''' + } + } + } +} diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/README.md" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858 --- /dev/null +++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/README.md" @@ -0,0 +1,2 @@ +# jwscalculator + diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/java/gitops/jwscalculator/JwsCalculator.java" new file mode 100644 index 0000000000000000000000000000000000000000..420a9cc19f0bf24c24a87b587cf618df58670436 --- /dev/null +++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/java/gitops/jwscalculator/JwsCalculator.java" @@ -0,0 +1,162 @@ +package gitops.jwscalculator; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class JwsCalculator { + + public static void main(String[] args) { + CalculatorUI ui=new CalculatorUI("JwsCalculator:չ"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("0"); + + private JPanel panel=new JPanel(new GridLayout(5,4)); + private JButton bt11=new JButton("7"); + private JButton bt12=new JButton("8"); + private JButton bt13=new JButton("9"); + private JButton bt14=new JButton("/"); + private JButton bt21=new JButton("4"); + private JButton bt22=new JButton("5"); + private JButton bt23=new JButton("6"); + private JButton bt24=new JButton("*"); + private JButton bt31=new JButton("1"); + private JButton bt32=new JButton("2"); + private JButton bt33=new JButton("3"); + private JButton bt34=new JButton("-"); + private JButton bt41=new JButton("0"); + private JButton bt42=new JButton("."); + private JButton bt43=new JButton("="); + private JButton bt44=new JButton("+"); + private JButton bt51=new JButton("%"); + private JButton bt52=new JButton("^"); + private JButton bt53=new JButton("@"); + private JButton bt54=new JButton("~"); + JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54}; + + class MyHandler implements ActionListener + { + String str=""; + + @Override + public void actionPerformed(ActionEvent e) { + JButton source=(JButton) e.getSource(); + + if(source==bt43) + { + str=str+"= "+CalcString.getRes(str); + textField.setText(str); + + int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION); + if(res==JOptionPane.YES_OPTION) + { + str=""; + textField.setText("0"); + } + else + System.exit(0); + + } + else + { + str=str+source.getText(); + textField.setText(str); + } + } + } + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + MyHandler myHandler=new MyHandler(); + this.ListenerAdd(myHandler); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("",Font.PLAIN,32)); + textField.setEditable(false); + + this.add(panel,BorderLayout.CENTER); + panel.setPreferredSize(new Dimension(300,350)); + for(int i=0;i<20;i++){ + jb[i].setFont(new Font("",Font.BOLD,32)); + panel.add(jb[i]); + } + + } + + private void ListenerAdd(MyHandler myHandler) + { + for(int i=0;i<20;i++){ + jb[i].addActionListener(myHandler); + } + } + +} +class CalcString +{ + public static double getRes(String str) + { + String s=""; + double n1 = 0,n2,res = 0; + char op = 0; + + for(int i=0;i + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/index.html" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..cca6da2316b4b2508db396d32b3b13e9b245fdeb --- /dev/null +++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/index.html" @@ -0,0 +1,14 @@ + + + + +功能扩展 + + +

本地网站localhost:8080

+ WebStart启动jwscalculator +
+

码云服务osgisOne.gitee.io

+ WebStart启动jwscalculator + + diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/jwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8 --- /dev/null +++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/jwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/.gitignore" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a --- /dev/null +++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/.gitignore" @@ -0,0 +1,25 @@ +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/Jenkinsfile" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/Jenkinsfile" new file mode 100644 index 0000000000000000000000000000000000000000..2aae3473e1597253caca596cf266b0fefe0c8ba8 --- /dev/null +++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/Jenkinsfile" @@ -0,0 +1,70 @@ +pipeline{ + agent any + stages{ + stage('编译源码') { + steps { + bat '''mkdir target + cd target + mkdir classes + cd ..\\src\\main\\java + javac gitops\\jwscalculator\\*.java gitops\\jwscalculator\\sdk\\*.java gitops\\jwscalculator\\plugins\\*.java -d ..\\..\\..\\target\\classes''' + } + } + stage('生成jar ') { + steps { + bat '''cd target\\classes + jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops''' + } + } + stage('生成密钥'){ + steps{ + bat '''cd target\\classes + keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"''' + } + } + stage('签名jar') { + steps { + bat '''cd target\\classes + jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass + move jwscalculator.jar ..\\..\\src\\main\\webapp''' + } + } + + stage('打包War') { + steps { + bat '''cd src\\main\\webapp + jar cfM jwscalculator.war *''' + } + } + stage('部署tomcat'){ + steps{ + deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war' + } + } + stage('本地运行jar'){ + steps{ + bat '''cd src\\main\\webapp + java -jar jwscalculator.jar''' + } + } + stage('本地运行jnlp'){ + steps{ + bat '''cd src\\main\\webapp + javaws jwscalculator.jnlp''' + } + } + stage('WebStart'){ + steps{ + bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html' + } + } + stage('清除'){ + steps{ + bat '''rd /S /Q target + cd src\\main\\webapp + del jwscalculator.jar + del jwscalculator.war''' + } + } + } +} diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/README.md" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858 --- /dev/null +++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/README.md" @@ -0,0 +1,2 @@ +# jwscalculator + diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/JwsCalculator.java" new file mode 100644 index 0000000000000000000000000000000000000000..043714d8570e4ea13d7cca58380034cccde60a05 --- /dev/null +++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/JwsCalculator.java" @@ -0,0 +1,182 @@ +package gitops.jwscalculator; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import gitops.jwscalculator.sdk.Calculate; +import gitops.jwscalculator.plugin.Add; +import gitops.jwscalculator.plugin.Sub; +import gitops.jwscalculator.plugin.Mul; +import gitops.jwscalculator.plugin.Div; +import gitops.jwscalculator.plugin.Gcd; +import gitops.jwscalculator.plugin.Mod; +import gitops.jwscalculator.plugin.Pow; +import gitops.jwscalculator.plugin.Lcm; + +public class JwsCalculator { + + public static void main(String[] args) { + CalculatorUI ui=new CalculatorUI("JwsCalculator:ܹع"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("0"); + + private JPanel panel=new JPanel(new GridLayout(5,4)); + private JButton bt11=new JButton("7"); + private JButton bt12=new JButton("8"); + private JButton bt13=new JButton("9"); + private JButton bt14=new JButton("/"); + private JButton bt21=new JButton("4"); + private JButton bt22=new JButton("5"); + private JButton bt23=new JButton("6"); + private JButton bt24=new JButton("*"); + private JButton bt31=new JButton("1"); + private JButton bt32=new JButton("2"); + private JButton bt33=new JButton("3"); + private JButton bt34=new JButton("-"); + private JButton bt41=new JButton("0"); + private JButton bt42=new JButton("."); + private JButton bt43=new JButton("="); + private JButton bt44=new JButton("+"); + private JButton bt51=new JButton("%"); + private JButton bt52=new JButton("^"); + private JButton bt53=new JButton("D(Gcd)"); + private JButton bt54=new JButton("m(Lcm)"); + JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54}; + + class MyHandler implements ActionListener + { + String str=""; + + @Override + public void actionPerformed(ActionEvent e) { + JButton source=(JButton) e.getSource(); + + if(source==bt43) + { + str=str+"= "+CalcString.getRes(str); + textField.setText(str); + + int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION); + if(res==JOptionPane.YES_OPTION) + { + str=""; + textField.setText("0"); + } + else + System.exit(0); + + } + else + { + str=str+source.getText(); + textField.setText(str); + } + } + } + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + MyHandler myHandler=new MyHandler(); + this.ListenerAdd(myHandler); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("",Font.PLAIN,32)); + textField.setEditable(false); + + this.add(panel,BorderLayout.CENTER); + panel.setPreferredSize(new Dimension(300,350)); + for(int i=0;i<20;i++){ + jb[i].setFont(new Font("",Font.BOLD,32)); + panel.add(jb[i]); + } + + } + + private void ListenerAdd(MyHandler myHandler) + { + for(int i=0;i<20;i++){ + jb[i].addActionListener(myHandler); + } + } + +} +class CalcString +{ + public static double getRes(String str) + { + String s=""; + double n1 = 0,n2,res = 0; + char op = 0; + + for(int i=0;in || 0>m){ + System.out.println("ERROR: ! greater than 0!"); + return 0.0; + } + result= factorial((int)m); + System.out.println(m+"!="+factorial((int)m)); + System.out.println(n+"!="+factorial((int)n)); + return result; + } + private int factorial(int a){ + if(0>a||a>=13){ + System.out.println("Intger Factorial Range is [0 12],13! =6227020800,13! !=1932053504"); + return 0; + } + if(0==a) + return 1; + int f=1; + for(int i=1;i<=a;i++) + f=f*i; + return f; + } +} diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/plugins/Gcd.java" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/plugins/Gcd.java" new file mode 100644 index 0000000000000000000000000000000000000000..585410fb3b75baacfafca722a76e19d5415dfaac --- /dev/null +++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/plugins/Gcd.java" @@ -0,0 +1,23 @@ +package gitops.jwscalculator.plugin; + +import gitops.jwscalculator.sdk.ICalculate; + +public class Gcd implements ICalculate{ + + private double result; + public double calculate(double m,double n){ + int a=(int)m, b=(int)n; + if(a + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/index.html" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..dd298932de6f2c5b03514602bdacce36c8ab18a0 --- /dev/null +++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/index.html" @@ -0,0 +1,14 @@ + + + + +架构重构 + + +

本地网站localhost:8080

+ WebStart启动jwscalculator +
+

码云服务osgisOne.gitee.io

+ WebStart启动jwscalculator + + diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/jwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8 --- /dev/null +++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/jwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/.gitignore" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a --- /dev/null +++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/.gitignore" @@ -0,0 +1,25 @@ +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/Jenkinsfile" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/Jenkinsfile" new file mode 100644 index 0000000000000000000000000000000000000000..83d9a23617cb8b48a820de13e45a5f51d4e36d1d --- /dev/null +++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/Jenkinsfile" @@ -0,0 +1,76 @@ +pipeline{ + agent any + stages{ + stage('编译源码') { + steps { + bat '''mkdir target + cd target + mkdir classes + cd ..\\src\\main\\java + javac gitops\\jwscalculator\\*.java gitops\\jwscalculator\\sdk\\*.java gitops\\jwscalculator\\plugins\\*.java -d ..\\..\\..\\target\\classes''' + } + } + stage('生成jar ') { + steps { + bat '''cd target\\classes + jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops''' + } + } + stage('生成密钥'){ + steps{ + bat '''cd target\\classes + keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"''' + } + } + stage('签名jar') { + steps { + bat '''cd target\\classes + jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass + move jwscalculator.jar ..\\..\\src\\main\\webapp''' + } + } + stage('JavaPackager生成jar、exe和msi'){ + steps{ + bat '''javapackager -makeall -appclass gitops.jwscalculator.JwsCalculator -name jwscalculator + move dist\\bundles\\jwscalculator-1.0.exe src\\main\\webapp + move dist\\bundles\\jwscalculator-1.0.msi src\\main\\webapp''' + } + } + stage('打包War') { + steps { + bat '''cd src\\main\\webapp + jar cfM jwscalculator.war *''' + } + } + stage('部署tomcat'){ + steps{ + deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war' + } + } + stage('本地运行jar'){ + steps{ + bat '''cd src\\main\\webapp + java -jar jwscalculator.jar''' + } + } + stage('本地运行jnlp'){ + steps{ + bat '''cd src\\main\\webapp + javaws jwscalculator.jnlp''' + } + } + stage('WebStart'){ + steps{ + bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html' + } + } + stage('清除'){ + steps{ + bat '''rd /S /Q target compiled dist + cd src\\main\\webapp + del jwscalculator.jar + del jwscalculator.war''' + } + } + } +} diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/README.md" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858 --- /dev/null +++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/README.md" @@ -0,0 +1,2 @@ +# jwscalculator + diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/jwscalculator.eapx" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/jwscalculator.eapx" new file mode 100644 index 0000000000000000000000000000000000000000..3513fa4db7ea8ec233c931a6159633bd865fa54c Binary files /dev/null and "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/jwscalculator.eapx" differ diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/JwsCalculator.java" new file mode 100644 index 0000000000000000000000000000000000000000..3c81822ce9c2921551e77c78226813f843eb5838 --- /dev/null +++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/JwsCalculator.java" @@ -0,0 +1,185 @@ +package gitops.jwscalculator; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import gitops.jwscalculator.sdk.Calculate; +import gitops.jwscalculator.plugin.Add; +import gitops.jwscalculator.plugin.Sub; +import gitops.jwscalculator.plugin.Mul; +import gitops.jwscalculator.plugin.Div; +import gitops.jwscalculator.plugin.Gcd; +import gitops.jwscalculator.plugin.Mod; +import gitops.jwscalculator.plugin.Pow; +import gitops.jwscalculator.plugin.Lcm; + +public class JwsCalculator { + + public static void main(String[] args) { + + CalculatorUI ui=new CalculatorUI("JwsCalculator:¼ܹ¹"); + ui.setVisible(true); + ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} + +class CalculatorUI extends JFrame +{ + private JTextField textField=new JTextField("0"); + + private JPanel panel=new JPanel(new GridLayout(5,4)); + private JButton bt11=new JButton("7"); + private JButton bt12=new JButton("8"); + private JButton bt13=new JButton("9"); + private JButton bt14=new JButton("/"); + private JButton bt21=new JButton("4"); + private JButton bt22=new JButton("5"); + private JButton bt23=new JButton("6"); + private JButton bt24=new JButton("*"); + private JButton bt31=new JButton("1"); + private JButton bt32=new JButton("2"); + private JButton bt33=new JButton("3"); + private JButton bt34=new JButton("-"); + private JButton bt41=new JButton("0"); + private JButton bt42=new JButton("."); + private JButton bt43=new JButton("="); + private JButton bt44=new JButton("+"); + private JButton bt51=new JButton("%"); + private JButton bt52=new JButton("^"); + private JButton bt53=new JButton("D"); + private JButton bt54=new JButton("m"); + JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24, + bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54}; + + class MyHandler implements ActionListener + { + String str=""; + + @Override + public void actionPerformed(ActionEvent e) { + JButton source=(JButton) e.getSource(); + + if(source==bt43) + { + str=str+"= "+CalcString.getRes(str); + textField.setText(str); + + int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION); + if(res==JOptionPane.YES_OPTION) + { + str=""; + textField.setText("0"); + } + else + System.exit(0); + + } + else + { + str=str+source.getText(); + textField.setText(str); + } + } + } + public CalculatorUI(String title) + { + super(title); + this.ComponentInit(); + MyHandler myHandler=new MyHandler(); + this.ListenerAdd(myHandler); + this.setLocation(300, 200); + this.setSize(600, 450); + } + + private void ComponentInit() + { + this.add(textField,BorderLayout.NORTH); + textField.setPreferredSize(new Dimension(300,80)); + textField.setHorizontalAlignment(JTextField.RIGHT); + textField.setFont(new Font("楷体",Font.PLAIN,32)); + textField.setEditable(false); + + this.add(panel,BorderLayout.CENTER); + panel.setPreferredSize(new Dimension(300,350)); + + for(int i=0;i<20;i++){ + jb[i].setFont(new Font("",Font.BOLD,32)); + panel.add(jb[i]); + } + + } + + private void ListenerAdd(MyHandler myHandler) + { + for(int i=0;i<20;i++){ + jb[i].addActionListener(myHandler); + } + } + +} +class CalcString +{ + public static double getRes(String str) + { + String s=""; + double n1 = 0,n2,res = 0; + char op = 0; + + for(int i=0;in || 0>m){ + System.out.println("ERROR: ! greater than 0!"); + return 0.0; + } + result= factorial((int)m); + System.out.println(m+"!="+factorial((int)m)); + System.out.println(n+"!="+factorial((int)n)); + return result; + } + private int factorial(int a){ + if(0>a||a>=13){ + System.out.println("Intger Factorial Range is [0 12],13! =6227020800,13! !=1932053504"); + return 0; + } + if(0==a) + return 1; + int f=1; + for(int i=1;i<=a;i++) + f=f*i; + return f; + } +} diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/plugins/Gcd.java" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/plugins/Gcd.java" new file mode 100644 index 0000000000000000000000000000000000000000..585410fb3b75baacfafca722a76e19d5415dfaac --- /dev/null +++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/plugins/Gcd.java" @@ -0,0 +1,23 @@ +package gitops.jwscalculator.plugin; + +import gitops.jwscalculator.sdk.ICalculate; + +public class Gcd implements ICalculate{ + + private double result; + public double calculate(double m,double n){ + int a=(int)m, b=(int)n; + if(a + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/index.html" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..fa34d7bfb47f6508ad95052927784a129b31d850 --- /dev/null +++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/index.html" @@ -0,0 +1,22 @@ + + + + +新架构新功能 + + +

Java WebStart计算器:本地网站localhost:8080

+ WebStart启动jwscalculator +

+ 下载双击jwscalculator-1.0.exe +

+ 下载安装程序菜单执行jwscalculator-1.0.msi +


+

Java WebStart计算器:码云服务osgisOne.gitee.io

+ WebStart启动jwscalculator +

+ 下载双击jwscalculator-1.0.exe +

+ 下载安装程序菜单执行jwscalculator-1.0.msi + + diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/jwscalculator.jnlp" new file mode 100644 index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8 --- /dev/null +++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/jwscalculator.jnlp" @@ -0,0 +1,19 @@ + + + + GitOps Java WebStart GuiCalculator + czldl + JWS to Run GuiCalculator + + + + + + + + + + + + + \ No newline at end of file