快速跑起nutzbook-project项目

nutzbook-project项目最早是wendal同学写教程时的一个副产品,用于做示例教学用的。后来随着功能的增加与完善渐渐进化成了nutz社区论坛的源码

这里说下怎么快速的搭建起该项目

  1. 将nutzbook-project源码clone到本地
  2. 使用eclipse等ide,以maven方式导入该项目
  3. 使用nutz-web的启动器跑起该项目,检查启动日志
  4. 修改几个配置项(数据库等指向本地),再次启动

clone源码到本地

没啥好说的,命令行下执行命令

git clone [email protected]:wendal/nutz-book-project.git
or
git clone https://github.com/wendal/nutz-book-project.git

maven导入项目

快速跑起nutzbook-project项目_第1张图片

导入后如果项目提示有错误,基本上是以下几类问题

  1. 编译器对于html,js等文件格式校验错误。

    这类问题是由于使用了某些模板引擎或者特别格式写法导致的,其实并不是真的错误,可以通过关闭IDE中的相关校验关闭检查

    快速跑起nutzbook-project项目_第2张图片
  2. mvn错误。

    比如可能会遇到类似 Failure to transfer com.thoughtworks.xstream:xstream:jar:1.3.1 from https://repo.maven..... 这种就是网络问题导致下载失败或下载不完整,需要先查看下本地 ~/.m2/repository 目录中是否有该包名的目录,看看对应目录下文件是否下载不完整,基本上删除后重新下载就好了。当然可能需要你翻下墙才能顺利下载。还有一种情况就是强制更新下本地的依赖库就能解决

    快速跑起nutzbook-project项目_第3张图片
    快速跑起nutzbook-project项目_第4张图片

使用nutz-web启动

如果项目已经不报错了,新建一个源码目录,添加一个启动类使用nutz-web提供的启动类尝试启动项目

快速跑起nutzbook-project项目_第5张图片

直接运行后,log中会打出类似的log

22:41:18.731 ERROR (DruidDataSource.java:2001) run - create connection error, url: jdbc:mysql://127.0.0.1:3306/nutzbook, errorCode 0, state 08S01
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.GeneratedConstructorAccessor53.newInstance(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[?:1.8.0]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.MysqlIO.(MysqlIO.java:341) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2251) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:806) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at sun.reflect.GeneratedConstructorAccessor50.newInstance(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[?:1.8.0]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328) ~[mysql-connector-java-5.1.40.jar:5.1.40]
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148) ~[druid-1.0.27.jar:1.0.27]
    at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211) ~[druid-1.0.27.jar:1.0.27]
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142) ~[druid-1.0.27.jar:1.0.27]
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1427) ~[druid-1.0.27.jar:1.0.27]
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1481) ~[druid-1.0.27.jar:1.0.27]
    at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1998) [druid-1.0.27.jar:1.0.27]
Caused by: java.net.ConnectException: Connection refused

可以看到基本都是数据库连接错误。

修改为本地配置项,再次启动服务

这里需要修改nutzbook的配置项,或使用本地配置项覆盖默认配置项。这里推荐第二种做法,也就是找到nutzbook默认配置文件,然后copy一份到刚刚建立的那个目录下,记得要跟默认配置放在同样的目录结构中,文件名也不能修改,这样才能达到覆盖的目的。

基本逻辑就是发现什么配置有问题就copy一份过来改成本地可访问的即可。

快速跑起nutzbook-project项目_第6张图片

这里需要启动一个mysql服务(配置参考db.properties),一个redis服务(默认配置即可),然后修改topic.properties目录指向本地可访问目录。

再次启动MyLauncher即可正常运行服务了。然后在浏览器中访问 http://localhost:8080 如果能看到下图,恭喜你已经跑起来了。

快速跑起nutzbook-project项目_第7张图片

你可能感兴趣的:(快速跑起nutzbook-project项目)