# p8 plan **Repository Path**: snail2020/p8-plan ## Basic Information - **Project Name**: p8 plan - **Description**: This repo can be regarded as a collection of coding, wiki, and some other stuff in the process of learning advanced technologies required by a senior developer. - **Primary Language**: Java - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-10-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # p8 plan #### 介绍 This repo can be regarded as a collection of coding, wiki, and some other stuff in the process of learning advanced technologies required by a senior developer. #### 软件架构 软件架构说明 #### 安装教程 #### 使用说明 1.docker相关命令行 ```bash # 构建基础镜像 $ ./build.sh image base # 构建app镜像(wbh/p8:v1)并创建容器 $ ./build.sh app && ./build.sh container # 解决jinfo, jmap等命令遇到的Operation not permitted问题(以extended权限登陆容器) $ docker exec --privileged -it p8_server bash ``` 2.常用命令行 ```bash # 运行某个Java类(https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-executable-jar-format.html) $ java -cp app.jar -D"loader.main=com.hucat.jvm.gc.Demo" org.springframework.boot.loader.PropertiesLauncher # 测试GC回收样例程序 $ java -Xms20M -Xmx20M -XX:+PrintGC -cp app.jar -D"loader.main=com.hucat.jvm.gc.T15FullGCProblem01" org.springframework.boot.loader.PropertiesLauncher # 查看java进程的内存设置情况 $ jps -v # 查看jvm的map信息 $ jmap $(jps |grep app.jar |awk '{print $1}') $ jmap -heap $(jps |grep app.jar |awk '{print $1}') # 查看jvm的基本信息 $ jinfo $(jps |grep app.jar |awk '{print $1}') # jvm统计工具 $ jstat -options $ jstat -gc $(jps |grep app.jar |awk '{print $1}') 1000 $ jstat -gcutil $(jps |grep app.jar |awk '{print $1}') 1000 $ jstat -compiler/class/printcompilation $(jps |grep app.jar |awk '{print $1}') ``` 3.Useful command line ```bash # Delete all configure files generated by vscode extention -- Java Extention Pack $ find . -type d -regex '.*/.settings' -exec rm -r {} + $ find . -type d -not -regex '\./\.git.*' -and -regex '.*/logs' -exec rm -r {} + $ find . -type d -name bin -exec rm -r {} + $ find . -type f -name .project -exec rm -r {} + $ find . -type f -name .classpath -exec rm -r {} + # Single command integrating all commands above $ find . -not -regex '\./\.git.*' -and -regex '.*/logs' -or -regex '.*/.settings' -or -type d -name bin -or -type f -name '.project' -or -type f -name '.classpath' |xargs rm -r # Regenerate configure files of Java Extention Pack after cleaning them. cmd + shift + p --> clean the java language server workspace ``` ### vscode说明 ### 插件安装 > 安装java支持 ```console cmd + shift + X (Extentions) --> Java Extension Pack ``` 注意:如果新添加的project或者java test类没有及时出现`CodeLens`的`Run|Debug`按钮,则可以清空插件的workspace缓存,重启并刷新vscode,等待下方状态栏的圈圈转停止,即构建完workspace的index ```console cmd + shift + P --> clean the java language server workspace ``` > 安装gradle插件 ```console shift + cmd + X (Extentions) --> Gradle Extension Pack ``` 注意:项目要为`gradle`项目(可以使用命令行`gradle init`初始化,具有`gradle/wrapper/gradle-wrapper.(jar|properties)`目录),插件才能自动识别。插件会根据`gradle-wrapper.properties`文件的定义,决定使用哪个版本的gradle进行编译,使用插件编译相当于执行命令`./gradlew` For more information, please search `java overview` in `Command Palette` or refer to webpage [Running and debugging Java](https://code.visualstudio.com/docs/java/java-debugging#_run-junit-tests). #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)