搭建 Solo 开发环境

本贴最后更新于 1631 天前,其中的信息可能已经时过境迁

本文是《Solo 从设计到实现》的一个章节,该系列文章将介绍 Solo 这款 Java 博客系统是如何从无到有的,希望大家能通过它对 Solo 从设计到实现有个直观地了解、能为想参与贡献的人介绍清楚项目,也希望能为给重复发明重新定义博客系统的人做个参考 ❤️

Java 环境

  • Java:至少需要 JDK8,如果你没有安装过 JDK,那就安装最新版。对于具体 JDK 实现没有要求,Oracle JDK 或者 OpenJDK 都行
  • Maven:至少需要 Maven2,尽量使用最新版

数据库

  • 默认使用 MySQL,可以切换为 H2 Database
  • MySQL 5.7 和 MySQL 8 都可以,建议用 MySQL 8
  • 生产环境建议使用 MySQL,毕竟管理工具、运维工具比较齐全

获取源码

git clone https://github.com/88250/solo.git

如果克隆太慢的话可以用我们在码云的镜像仓库:

git clone https://gitee.com/dl88250/solo.git

IDE

因为 Solo 是通过 Maven 构建的项目,所以只要支持 Maven 的 IDE 都可以,推荐:

  • IntelliJ IDEA
  • NetBeans

使用 IDE 打开项目即可,第一次构建时会自动下载依赖。pom 里默认激活的 profile 使用了阿里云的 Maven 仓库,理论上依赖下载会比较快。

启动运行和打包

在 IDE 中直接运行 org.b3log.solo.Server 类就可以启动。通过 mvn clean package 会进行打包,生成 target/solo 目录,在该目录下可通过如下方式运行:

  • Windows: java -cp "lib/*;." org.b3log.solo.Server
  • Unix-like:java -cp "lib/*:." org.b3log.solo.Server
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1435 引用 • 10056 回帖 • 489 关注
  • 设计
    115 引用 • 797 回帖 • 1 关注
  • 文档
    56 引用 • 1289 回帖 • 2 关注
4 操作
88250 在 2020-07-04 17:32:37 更新了该帖
88250 在 2019-12-16 21:16:18 更新了该帖
88250 在 2019-11-30 08:56:11 更新了该帖
88250 在 2019-11-11 02:23:11 更新了该帖

相关帖子

优质回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone30664

    怎么获取源码啊 有权限问题啊

    1 回复
  • cxylive

    怎么将 solo 部署到阿里云?😭

    1 回复
  • 88250

    社区搜索一下吧,很多教程。

    2 回复
  • cxylive

    看不懂,第一次部署

    imagepng
    我部署到阿里云上 latke.properties 文件可以这样配吗?

    1 回复
  • 88250

    文档上有写的就不要问了,谢谢。

    https://hacpai.com/article/1492881378588

    1 回复
  • qingsi

    用 http 去获取

  • chenruhai

    文档上没有写有使用自带内嵌数据库安装的 demo

    2 回复
  • 88250

    H2 Database 就是内嵌的。

    1 回复
  • Blackman99 1

    请阅读《提问的智慧》
    https://hacpai.com/article/1544408700521

  • chenruhai

    🆗

  • keifer12138

    有个疑惑:现在项目的 web 容器是用的 jetty 吧?为啥还建议用 Tomcat 呢? 意思是可以选择一开始就用 Tomcat 是吧,因为想着现在更改成 Tomcat 不行吧?感谢解答!~~~~

    1 回复
  • 88250

    可以用 Tomcat 的。

  • Micronotes
    INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/tomcat/webapps/solo.war]
    INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    

    Eclipse 打包,打成 war 包后放入 Tomcat 运行,然后报错停止,报错信息如上。求解,是哪里的问题。
    注:Tomcat8.5,JDK1.8,Linux 环境,运行报错。同样配置 Windows 下 OK。

    1 回复
  • 88250

    INFO 不是报错。

    1 回复
  • Micronotes

    这种情况是卡住了吧,终归是没运行起来。这种情况遇到过吗,如何解决。或者根据 log 信息,哪里是关键问题所在呢。

    1 回复
  • 88250

    我这边一直用的内嵌 Server 启动,其他方式麻烦自己探索一下。对了,最近 Solo 会有大的改版,将不再支持 Servlet 容器,底层 Latke 基于 Netty 实现网络层。

    1 回复
  • Micronotes

    好的,我试试别的方式,感谢解答

  • jetablezhu

    submodel 不错不错,还能这么玩

  • white2022

    配置端口好像没用,默认还是开启的 8080 端口,反而请求静态文件的端口变为配置的 8025,从而加载不到静态文件,期待修复

    1 回复
  • 88250

    加参数 --listen_port

    1 回复
  • white2022

    强,已解决,感谢答疑

  • brady

    请问下 idea 启动后,无法访问 http://localhost:8080

    1 回复
  • 88250

    你是如何启动的呢?

    1 回复
  • brady

    idea 直接启动 Server 类

    1 回复
  • 88250

    没有改过配置文件或者其他什么地方吗?

    1 回复
  • brady

    是的,只是改了数据库密码

    1 回复
  • 88250

    代码是从 GitHub 上拉取的么?看下进程监听端口是否正常 netstat -ano -p tcp | find "8080"

    1 回复
  • brady

    1 回复
  • 88250

    看上去进程监听端口没问题。你看下是不是你网络配置不对,比如是不是开了代理?

    1 回复
  • brady

    没有开代理。我自己再琢磨吧,感谢。

  • licy

    这个依赖下载不了怎么办啊

    Could not transfer artifact com.vladsch.flexmark:flexmark-ext-youtube-embedded:pom:0.50.40 from/to aliyun (http://maven.aliyun.com/nexus/content/groups/public): Failed to transfer file http://maven.aliyun.com/nexus/content/groups/public/com/vladsch/flexmark/flexmark-ext-youtube-embedded/0.50.40/flexmark-ext-youtube-embedded-0.50.40.pom with status code 502 
    
    1 回复
  • 88250

    看上去可能是阿里云 Maven 仓库临时有点网络问题,直接使用中央仓库试试。

    2 回复
  • licy

    谢谢

  • SherlockOuO

    image.png为啥我本地启动不了呢?

    1 回复
  • 88250

    如何启动的?

    1 回复
  • SherlockOuO

    就直接 server 启动的。哦开了代理会有影响嘛?

    1 回复
  • 88250

    应该没有影响,这个报错看上去是加载皮肤路径有问题,你 debug 看看吧。

    1 回复
  • SherlockOuO

    但是仍旧打不开image.png

  • jpfss

    image.png

    启动成功,样式乱了,win10 环境,JDK8

    image.png

    1 回复
  • 88250

    启动参数麻烦贴一下。

  • Tomiaocat

    我的 docker 种没有安装 jdk 镜像,服务器种也没有安装 java 环境,为何我使用大佬提供的启动脚本一下就启动了? 他不应该会无法启动嘛

  • Tomiaocat

    image.png

    明白了,你的 image 中有了

  • tinygrey

    localhost:8080 进入了首页

    image.png

    然后点击登陆黑客派社区,报错

    image.png

    image.png

    1 回复
  • 88250

    请使用最新代码。

    3 回复
  • tinygrey

    这个是什么错误,要怎么修改呢?

    image.png

  • tinygrey

    现在能进后台跟博客了 就是报错 这个

    image.png

  • tinygrey

    image.png

    1 回复
  • 88250

    这个应该是 JDK 版本不匹配,你用的 JDK 是哪个版本?

    1 回复
  • tinygrey

    jdk1.8

    1 回复
  • 88250

    估计得升级到 11

请输入回帖内容 ...