1 Star 0 Fork 29

邱伟 / jnpf-java-single

forked from 刘子谦 / jnpf-java-single 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

特别说明:源码、JDK、MySQL、Redis、Nacos、Seata、Sentinel等存放路径禁止包含中文、空格、特殊字符等

技术栈

  • 主框架:Spring Cloud Alibaba + Spring Boot + Spring Framework
  • 持久层框架:Mybatis-plus
  • JSON序列化: Jackson&Fastjson
  • 缓存:Redis
  • 数据库: MySQL 5.7.x+SQLServer 2012+Oracle 11g+
  • API网关:spring-cloud-geteway
  • 服务注册&发现和配置中心: Nacos
  • 服务监控:Spring Boot Admin
  • 服务消费:OpenFeign/Dubbo RPC
  • 负载均衡:Ribbon
  • 服务熔断:Sentinel
  • 项目构建:Maven
  • 分布式事务:Seata
  • 消息队列:RocketMQ
  • 安全框架:spring-cloud-security-oauth2+jwt
  • 链路追踪:Skywalking
  • 模板引擎:Velocity
  • 即时通讯:spring-boot-starter-websocket
  • AOP:spring-boot-starter-aop

推荐硬件配置

  • 开发环境:I5 CPU+16G内存
  • 测试生产环境: 8核32G(最低要求)

环境要求

特别说明: JDK版本不低于 jdk-8u281-x版本

JDK历史版本:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html

【配置库】仅支持MySQL,【业务库】支持MySQL、SQLServer、Oracle

软件 推荐版本 说明
JDK 1.8.281 JAVA环境依赖(需配置环境变量)
Maven 3.6.3 项目构建(需配置环境变量)
Redis 3.2.100(Windows)/6.0.x(Linux、Mac)
MySQL 5.7.x 默认数据库
SQLServer 2012
Oracle 11g

工具推荐

IDEA版本 Maven版本
IDEA2020及以上版本 Maven 3.6.3及以上版本

IDEA插件

  • Lombok
  • Alibaba Java Coding Guidelines
  • MybatisX

Maven私服配置(如有需要)

通过官方私服下载依赖完成后,由于IDEA的缓存可能会出现部分报红,重启IDEA即可

1、打开mavenconf/settings.xml文件

2、 在<servers></servers>中添加

<server>
    <id>maven-releases</id>
    <username>jnpf-user</username>
    <password>HLrQ0MA%S1nE</password>
</server>
<server>
    <id>maven-snapshots</id>
    <username>jnpf-user</username>
    <password>HLrQ0MA%S1nE</password>
</server>

3、在<mirrors></mirrors>中添加

<mirror>
  <id>maven-snapshots</id>
  <mirrorOf>*</mirrorOf>
  <name>maven-snapshots</name>
  <url>https://repository.jnpfsoft.com/repository/maven-public/</url>
</mirror>

4、在idea中上传jar包到maven私服: settings.xml文件使用setting-jnpf.xml
在idea的右侧maven中点击lifecycle中的deploy即可

服务说明

服务名称 默认端口 描述
nacos 30099 服务注册、发现和配置中心
sentinel-server 30098 流量控制、熔断降级、系统负载保护
seata-server 30095 分布式事务
spring-boot-admin 30097 管理和监控SpringBoot应用
skywalking 30096 链路追踪监控
jnpf-gateway 30000 网关
jnpf-oauth 30001 认证服务
jnpf-system 30002 系统基础服务
jnpf-visualdev 30003 可视化开发(在线开发、代码生成、门户设计)
jnpf-workflow 30004 工作流
jnpf-file 30005 文件服务(上传、下载、预览,文档编辑、预览等)
jnpf-tenant 30006 多租户服务
jnpf-datareport 30007 报表服务
jnpf-message 30008 消息中心
jnpf-scheduletask 30009 任务调度
jnpf-permission 30010 权限服务
jnpf-visualdata 30011 数据大屏服务
jnpf-jnpf.zsyc 30012 移动端服务
jnpf-extend 30019 扩展(系统内置示例)
jnpf-example 30100 子系统开发模板

使用说明

创建库并导入数据库脚本

MySQL编码为utf8mb4 在使用Navicat等工具时,运行SQL脚本执行jnpf_init.sql可能会报错(初始数据含有JSON数据),建议使用新建查询执行初始化脚本

  • jnpf-databae/MySQL/${version}/jnpf_init.sql(项目业务库)
  • jnpf-databae/java微服务/${version}/jnpf_nacos.sql(项目配置库)
  • 数据库地址:192.168.3.72:3306/ls
  • 用户名:root
  • 密码:ls@888

服务组件配置

Nacos配置

  • 打开jnpf-registry/nacos/conf/application.properties
  • 修改数据库配置【配置库】(第39-41行)
  • 启动nacos:sh startup.sh -m standalone
  • 关闭nacos:sh shutdown.sh
  • 地址:127.0.0.1:30099

Seata配置

  • 打开jnpf-registry/seata/conf/file.conf,修改数据源配置【配置库】(第27行开始)
  • 打开数据库仓库的jnpf-databae/java微服务/jnpf_seata_config.sql修改seata配置SQL脚本,并在jnpf_nacos(项目配置库)中执行脚本

Sentinel配置

  • 右击jnpf-registry/sentinel-server/pom.xml 选择Add as Maven Project
  • 打开sentinel-server/src/main/resoures/application.properties,修改配置nacos服务地址(第29行)(nacos为本地地址时无需修改)

Skywalking配置

基本配置

  • 打开skywalking/config/application.yml ,修改下数据源配置(第164-166行)
  • 创建skywalking初始表(脚本自动创建)
    • 运行skywalking/bin/oapServiceInit.bat(windows环境)
    • 运行skywalking/bin/oapServiceInit.sh(Linux、Mac环境)

集成到项目中

配置中包含JVM配置

  • 配置说明

    1、JVM内存配置(根据实际情况调整))

    -Xmx1500m
    -Xms1500m
    -Xmn1180m
    -Xss1024k

    2、skywalking-agent路径(绝对路径)

    -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar

    3、服务名

    -Dskywalking.agent.service_name=jnpf-extend

    4、gRPCPort端口,默认端口11800,

    -Dskywalking.collector.backend_service=localhost:11800

    其他服务类似操作,具体配置参考如下:

  • 开发环境配置

    • jnpf-gateway网关

      -Xmx200m
      -Xms200m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-gateway
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-oauth认证服务

      -Xmx200m
      -Xms200m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-oauth
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-system系统基础服务

      -Xmx400m
      -Xms400m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-system
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-visualdev可视化开发

      -Xmx800m
      -Xms800m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-visualdev
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-workflow工作流

      -Xmx800m
      -Xms800m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-jnpf-workflow
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-file文件服务

      -Xmx300m
      -Xms300m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-file
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-tenant租户服务

      -Xmx200m
      -Xms200m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-tenant
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-datareport报表服务

      -Xmx500m
      -Xms500m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-datareport
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-message消息中心

      -Xmx200m
      -Xms200m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-message
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-scheduletask任务调度

      -Xmx1000m
      -Xms1000m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-scheduletask
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-permission权限服务

      -Xmx400m
      -Xms400m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-permission
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-visualdata大屏服务

      -Xmx200m
      -Xms200m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-visualdata
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-jnpf.zsyc大屏服务

      -Xmx200m
      -Xms200m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-jnpf.zsyc
      -Dskywalking.collector.backend_service=localhost:11800
    • jnpf-extend扩展服务

      -Xmx200m
      -Xms200m
      -javaagent:D:\Code\jnpf-java-cloud\jnpf-registry\skywalking\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=jnpf-extend
      -Dskywalking.collector.backend_service=localhost:11800
  • 测试生产环境配置(参考配置,具体按实际使用情况调整)

    测试生产环境中,在服务启动命令中添加

  • jnpf-gateway网关

    nohup java -Xmx200m -Xms200m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-gateway -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-gateway-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-oauth认证服务

    nohup java -Xmx200m -Xms200m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-oauth -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-oauth-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-system系统基础服务

    nohup java -Xmx400m -Xms400m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-system -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-system-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-visualdev可视化开发

    nohup java -Xmx800m -Xms800m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-visualdev -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-visualdev-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-workflow工作流

    nohup java -Xmx800m -Xms800m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-workflow -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-workflow-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-file文件服务

    nohup java -Xmx300m -Xms300m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-file -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-file-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-tenant租户服务

    nohup java -Xmx200m -Xms200m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-tenant -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-tenant-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-datareport报表服务

    nohup java -Xmx500m -Xms500m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-datareport -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-datareport-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-message消息中心

    nohup java -Xmx200m -Xms200m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-message -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-message-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-scheduletask任务调度

    nohup java -Xmx1000m -Xms1000m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-scheduletask -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-scheduletask-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-permission权限服务

    nohup java -Xmx500m -Xms500m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-permission -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-permission-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-visualdata大屏服务

    nohup java -Xmx200m -Xms200m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-extend -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-visualdata-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-jnpf.zsyc移动端

    nohup java -Xmx200m -Xms200m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-extend -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-jnpf.zsyc-3.2.9-RELEASE.jar >Log.log 2>&1 &
  • jnpf-extend扩展

    nohup java -Xmx200m -Xms200m -javaagent:/www/wwwroot/jnpf-registry/skywalking-server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=jnpf-extend -Dskywalking.collector.backend_service=localhost:11800 -jar jnpf-extend-3.2.9-RELEASE.jar >Log.log 2>&1 &

其他子系统配置

这里的数据库为【业务库】数据库

  • 启动nacos,打开配置管理-配置列表- dev,修改datasource.yaml(Redis,数据库配置)和resources.yaml(静态资源配置)

JVM配置参考(根据实际情况调整)

启动项 参考配置 描述
JnpfApplication -Xmx200m -Xms200m 移动端
JnpfDataReportApplication -Xmx500m -Xms500m 报表服务
JnpfExtendApplication -Xmx200m -Xms200m 扩展服务
JnpfFileAplication -Xmx300m -Xms300m 文件服务
JnpfGatewayApplication -Xmx200m -Xms200m 网关
JnpfMessageApplication -Xmx200m -Xms200m 消息中心
JnpfOauthApplication -Xmx200m -Xms200m 认证中心
JnpfPermissionApplication -Xmx400m -Xms400m 权限管理
JnpfScheduletaskApplication -Xmx1000m -Xms1000m 系统调度
JnpfSystemApplication -Xmx400m -Xms400m 系统服务
JnpfTenantApplication -Xmx200m -Xms200m 多租户
JnpfVisualdataApplication -Xmx200m -Xms200m 大屏服务
JnpfVisualdevApplication -Xmx800m -Xms800m 可视化开发
JnpfWorkflowApplication -Xmx800m -Xms800m 工作流

#### 开发环境配置

Run/Debug Configurations界面按上述表格配置

测试生产环境配置

在启动命令加上配置-Xmx500m -Xms500m -Xmn180m -Xss1024k,如

nohup java -jar -Xmx500m -Xms500m jnpf-system-3.2.9-RELEASE.jar > Log.log & 2>&1 &

项目启动

建议按照如下顺序进行启动,注意naocs服务管理列表(public),确保每个服务都正常

nacos-server服务(优先启动等级1)

  • 运行jnpf-registry/nacos-server/bin/startup.cmd(windows环境)
  • 运行jnpf-registry/nacos-server/bin/startup.sh(Linux、Mac环境)
  • 打开http://localhost:30099/nacos/index.html,默认账号密码为nacos

sentinel-server服务(优先启动等级2)

  • 运行jnpf-registry/sentinel-server/src/main/java/com/alibaba/csp/sentinel/dashboard/DashboardApplication.java启动类

seata-server服务(优先启动等级2)

  • 运行jnpf-registry/seata-server/bin/startup.bat(windows环境)
  • 运行jnpf-registry/seata-server/bin/startup.sh(Linux、Mac环境)

skywalking服务(可选)

  • 运行skywalking/bin/startup.bat(windows环境)
  • 运行skywalking/bin/startup.sh(Linux、Mac环境)

spring-boot-admin管理和监控SpringBoot应用(可选)

  • 运行jnpf-registry/boot-admin/src/main/java/jnpf/JnpfAdminApplication.java启动类

其他服务(不分先后顺序)

  • jnpf-jnpf.zsyc服务(移动端):运行/jnpf-jnpf.zsyc/jnpf-jnpf.zsyc-server/src/main/java/jnpf/JnpfApplication启动类

  • jnpf-datareport服务(报表): 运行jnpf-report/jnpf-datareport/report-console/src/main/java/com/bstek/ureport/console/JnpfDataReportApplication启动类

  • jnpf-extend服务(扩展): 运行jnpf-extend/jnpf-extend-server/src/main/java/jnpf/JnpfExtendApplication启动类

  • jnpf-file服务(文件):运行jnpf-file/jnpf-file-server/src/main/java/jnpf/JnpfFileAplication启动类

  • jnpf-gateway服务(网关):运行/jnpf-gateway/src/main/java/jnpf/system/base/JnpfGatewayApplication启动类

  • jnpf-message服务(消息中心):运行jnpf-message/jnpf-message-server/src/main/java/jnpf/JnpfMessageApplication启动类

  • jnpf-oauth服务(认证中心):运行jnpf-oauth/jnpf-oauth-server/src/main/java/jnpf/JnpfOauthApplication启动类

  • jnpf-permission服务(权限管理):运行jnpf-permission/jnpf-permission-server/src/main/java/jnpf/JnpfPermissionApplication启动类

  • jnpf-scheduletask服务(系统调度):运行jnpf-scheduletask/jnpf-scheduletask-server/src/main/java/jnpf/JnpfScheduletaskApplication启动类

  • jnpf-system服务(系统):运行jnpf-system/jnpf-system-server/src/main/java/jnpf/JnpfSystemApplication启动类

  • jnpf-tenant服务(多租户): 运行jnpf-tenant/jnpf-tenant-server/src/main/java/jnpf/JnpfTenantApplication启动类

  • jnpf-visualdata服务(大屏):运行jnpf-visualdata/jnpf-visualdata-server/src/main/java/jnpf/JnpfVisualdataApplication启动类

  • jnpf-visualdev服务(可视化开发):运行jnpf-visualdev/jnpf-visualdev-server/src/main/java/jnpf/JnpfVisualdevApplication启动类

  • jnpf-workflow服务(工作流): 运行jnpf-workflow/jnpf-workflow-server/src/main/java/jnpf/JnpfWorkflowApplication启动类

服务中间件

  • Nacos

    • 版本:2.0.0
    • 控制台URL: http://localhost:30099/nacos/index.html
    • 用户密码:nacos/nacos
  • Sentinel

    • 版本:1.8.2
    • 控制台URL: http://localhost:30098
    • 用户密码:sentinel/sentinel
  • Spring Boot Admin(可选)

    • 版本:2.3.0
    • 控制台URL: http://localhost:30097
    • 用户密码:admin/admin
  • Skywalking(可选)

    • 版本:8.3.0
    • 控制台URL: http://localhost:30096
  • Swagger接口

    • 版本:3.0.0
    • 全局接口(网关):http://localhost:30000/swagger-ui/
    • 认证服务:http://localhost:30001/swagger-ui/
    • 系统服务:http://localhost:30002/swagger-ui/
    • 可视化开发:http://localhost:30003/swagger-ui/
    • 工作流:http://localhost:30004/swagger-ui/
    • 文件服务:http://localhost:30005/swagger-ui/
    • 多租户服务:http://localhost:30006/swagger-ui/
    • 消息中心:http://localhost:30008/swagger-ui/
    • 系统调度:http://localhost:30009/swagger-ui/
    • 权限服务:http://localhost:30010/swagger-ui/
    • 大屏服务:http://localhost:30011/swagger-ui/
    • 移动端:http://localhost:30012/swagger-ui/
    • 扩展服务:http://localhost:30019/swagger-ui/

常见问题

Linux下运行.sh启动提示$’\r’: 未找到命令的解决等问题

在服务器上安装

yum install dos2unix

然后通过执行dos2unix **.sh进行转换

某些情况下服务无法连接到seata的问题

修改seata启动脚本startup.sh,加上seata所在服务器的IP

nohup ./seata-server.sh -p 30095 -h 192.168.0.26 > Log.log & 2>&1 &

Seata报-Xloggc is deprecated错误的解决方法

报错log如下

[0.001s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/www/wwwroot/jnpf-registry/seata-server/logs/seata_gc.log instead.
[0.001s][error  ][logging] Error opening log file '/www/wwwroot/jnpf-registry/seata-server/logs/seata_gc.log': No such file or directory
[0.001s][error  ][logging] Initialization of output 'file=/www/wwwroot/jnpf-registry/seata-server/logs/seata_gc.log' using options '(null)' failed.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

从这个报错中,可以看出启动参数-Xloggc过时了,提示我们用-Xlog:gc:,原因其实也不难猜测,因为用的是JDK11,所以参数发生了变化。

我们修改下seata-server.sh,将-Xloggc改为-Xlog:gc:

再次启动,还会报另外一个错,就是找不到日志文件,手动创建下日志文件:

touch seata_gc.log

空文件

简介

jnpf单体项目 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/MiKeNetProject/jnpf-java-single.git
git@gitee.com:MiKeNetProject/jnpf-java-single.git
MiKeNetProject
jnpf-java-single
jnpf-java-single
master

搜索帮助