vlambda博客
学习文章列表

如何快速白嫖 Github 2.1k Star 的论坛项目

今天就给大家讲讲如何白嫖 Github 2.1k star 的论坛项目,码问为了轻量级部署使用的是 H2 数据库,其本质也是让大家拿到代码以后零成本的轻量部署,但是如果想通过 MySQL 运行怎么办?就让我带大家一起吧

第一步,克隆项目

git clone https://github.com/codedrinker/community.git

第二步,自行安装 MySQL

保证本地 MySQL 运行正常,创建数据库 community

CREATE DATABASE `community` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

第三步,修改配置文件

1. 修改数据库配置

修改数据库配置文件 pom.xml,修改 profiles 里面的 properties 内容。

<profiles>
  <profile>
      ...
  </profile>
  <profile>
      <id>mysql</id>
      <properties>
          <db.url>jdbc:mysql://127.0.0.1:3306/</db.url>
          <db.user>root</db.user>
          <db.password></db.password>
          <db.driver>com.mysql.jdbc.Driver</db.driver>
      </properties>
  </profile>
</profiles>

修改 spring 配置文件 application.properties ,以便可以使用一套数据库配置

[email protected]@community?useUnicode=true&characterEncoding=UTF-8
[email protected]@
[email protected]@
[email protected]@

2. 修改 flyway 配置

修改 pom.xml 配置文件中的 org.flywaydb plugin,增加数据库名称后缀,以便可以使用一套数据库配置

<plugin>
  ...
  <groupId>org.flywaydb</groupId>
  <configuration>
    <url>${db.url}community</url>
  ...
</plugin>

3. 修改 generator 配置

增加 MySQL 驱动

<plugin>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-maven-plugin</artifactId>
  <version>1.3.7</version>
  <dependencies>
  ...
  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.45</version>
  </dependency>
  ...
</dependencies>
</plugin>

修改 generatorConfig.xml 文件,增加占位符,配合 maven filter,以便可以使用一套数据库配置

<jdbcConnection 
  driverClass="@db.driver@"
  connectionURL="@db.url@community"
  userId="@db.user@"
  password="@db.password@">

</jdbcConnection>

<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>
        <jdbcConnection
                driverClass="@db.driver@"
                connectionURL="@db.url@community"
                userId="@db.user@"
                password="@db.password@">

        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

在 build 标签里面增加 resources,配置 maven filting 的生效目录,配置生效以后可以替换所有  directory 目录下的占位符。

<build>
  <resources>
      <resource>
          <directory>src/main/resources</directory>
          <filtering>true</filtering>
      </resource>
  </resources>
</build>

在 pom.xl 里面指定 org.mybatis.generator plugin 位置修改 generatorConfig.xml 执行路径,因为执行 filting 以后替换占位符的文件会存放在 target 里面。

<plugin>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-maven-plugin</artifactId>
  <version>1.3.7</version>
  <configuration>
    <overwrite>true</overwrite>
    <configurationFile>${basedir}/target/classes/generatorConfig.xml</configurationFile>
  </configuration>
  ...
</plugin>

第四步,运行

1. 运行 flyway

运行 flyway:migrate,目的是把我们需要创建的 DB 文件进行初始化,其中 -Pmysql 是为了指定对应的 maven profile

mvn flyway:migrate -Pmysql

2. 运行 mybatis-generator

运行 generator 是为了生成逆向文件,留心的朋友可能注意到,原来的需要 override 的配置不见了,因为这个配置已经转移到了 pom.xml 文件。

mvn package mybatis-generator:generate -Pmysql

3. 修改 * ExtMapper.xml

因为之前 * ExtMapper.xml 是自定义的,MySQL 默认不支持大写,所以需要全部修改成小写。

4. 启动

使用 IDEA 直接运行 CommunityApplication 或者使用如下命令运行

mvn clean compile -DskipTests package -Pmysql
nohup java -jar target/community-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &