商业Java版 ThinkInShop

  1. 主页
  2. 文档
  3. 商业Java版 ThinkInShop
  4. 开发文档
  5. 打包步骤

打包步骤

打包步骤

移动端需要启动的服务

打包步骤pc管理后台需要启动的服务打包步骤pc店铺打包步骤pc商城打包步骤1、使用 idea 导入thinkinshop打包步骤2、配置授权证书

在邮件中下载的laike_license 证书文件,复制到laike-domain或laike-core模块下的resources/license/文件夹中

有laike-core模块的请放到 laike-core/src/main/resources/license/laike_license
有laike-domain模块的请放到 laike-domain/src/main/resources/license/laike_license

3、配置通用模块的【数据库】和【redis】信息laike-core

修改配置文件 laike-core/src/main/resources/application-core-dev/prod.yml;

spring:
  jmx:
    enabled: false
  http:
    encoding:
      force: true
      charset: UTF-8
      enabled: true
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 30MB
      file-size-threshold: 1
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
##################################################################################
##修改数据库配置####################################################################
##################################################################################
    url: jdbc:mysql://localhost:3306/v3_db?useUnicode=true&autoReconnect=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false
    username: root
    password: 51bbec4bcde2ef40 
    ...
    ...
##################################################################################
## 修改redis 配置##################################################################
##################################################################################
  redis:
    host: localhost
#    host: 192.168.0.48
    port: 6339
    password: laiketui18
    ...
    ...

【注】上面的laike-core的【数据库配置】和【redis配置】被以下模块公用

<module>laike-admin-store</module> 
<module>laike-user</module>
<module>laike-products</module> 
<module>laike-payment</module> 
<module>laike-order</module> 
<module>laike-app</module> 
<module>laike-mch</module> 
<module>laike-coupon</module> 
<module>laike-task</module> 
<module>laike-admin-mch</module> 
<module>laike-file</module>

4、配置需部署的模块端口

端口的配置在模块【laike-ModuleName】的resources/application*.yml文件中修改 port 端口。

  • 当所有模块部署在同一个tomcat中的时候修改所有模块的port端口值跟tomcat/conf/server.xml文件中的port端口一致。
  • 当不同的模块需要部署在不同的tomcat中的时候,修改对应的模块端口值跟对应部署的tomcat/conf/server.xml文件中的port值一致。
  • 总而言之部署的模块端口和tomcat的prot要一一对应,否则部署后会有错误,常见问题就是:接口不存在。

server:
  port_register: 18001
  # 修改port地方的端口
  port: 18002

需要部署/启动的模块

<!--网关模块-->
<module>laike-gateway</module>
<!--pc管理后台-->
<module>laike-admin-store</module> 
<!--用户-->
<module>laike-user</module>
<!--商品模块-->
<module>laike-products</module> 
<!--支付模块-->
<module>laike-payment</module> 
<!--订单模块-->
<module>laike-order</module> 
<!--移动端模块-->
<module>laike-app</module> 
<!--店铺插件模块-->
<module>laike-mch</module> 
<!--优惠券模块-->
<module>laike-coupon</module> 
<!--任务模块-->
<module>laike-task</module> 
<!--pc店铺模块-->
<module>laike-admin-mch</module> 
<!--资源文件模块-->
<module>laike-file</module>

不需要部署/启动的模块

<module>laike-模块名-serviceapi</module>
<module>laike-common</module>
<module>laike-pluCommon</module>

5、配置 maven 仓库,

apache-Maven官网

前提是开发环境的maven已经配置好了。可百度maven安装步骤。版本不限。

Maven的Setting.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <pluginGroups />
    <proxies />
    <servers /> 
    <localRepository>/Users/wangxian/.m2/repository</localRepository>

    <mirrors>
        <!-- <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror> -->
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <!-- <mirror>
            <id>central</id>
            <name>Maven Repository Switchboard</name>
            <url>http://repo1.maven.org/maven2/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>repo2</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo2.maven.org/maven2/</url>
        </mirror>
        <mirror>
            <id>ibiblio</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
        </mirror>
        <mirror>
            <id>jboss-public-repository-group</id>
            <mirrorOf>central</mirrorOf>
            <name>JBoss Public Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public</url>
        </mirror>
        <mirror>
            <id>google-maven-central</id>
            <name>Google Maven Central</name>
            <url>https://maven-central.storage.googleapis.com
            </url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>maven.net.cn</id>
            <name>oneof the central mirrors in china</name>
            <url>http://maven.net.cn/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>  -->
    </mirrors>
</settings>

6、安装 laike-root.jar ,xxl-job-core. jar包 ;

# -Dfile root的实际文件位置
mvn install:install-file -Dfile=/path/laike-root-0.0.1-SNAPSHOT.jar -DgroupId=com.laiketui -DartifactId=laike-root -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar
### -Dfile xx-xjob的实际文件位置
mvn install:install-file -Dfile=C:\xxl-job-core-2.3.0-SNAPSHOT.jar -DgroupId=com.xuxueli -DartifactId=xxl-job-core -Dversion=2.3.0-SNAPSHOT -Dpackaging=jar

7、运行maven clean – package

以上步骤都弄完成之后可以开始执行mavn指令了,在IDEAJ开发工具的右侧有Maven窗口。

打包步骤

8、拿出以下war包 上传到tomcat的webapps文件夹里面

执行完 maven后的命令后每个模块会新增一个target文件夹,在target文件夹中可获取到此模块的war包。
laike-xxxx            #模块名 
├── pom.xml        #maven构建文件
├── src                #源码文件 
└── target        #模块编译(compile)/打包(package)后文件存放文件
│   │   ├── xxxx.war

9、使用以下代码拿出所有war包

import org.springframework.util.FileCopyUtils;  

import java.io.File;  
import java.io.IOException;  
import java.util.HashMap;  
import java.util.Map;  
import java.util.Set;  

public class GetWars {  

    public static void main(String[] args) throws IOException {  
        System.out.println("start!!");  

        String root = System.getProperty("user.dir");  
        Map<String,String> pathsMap  = new HashMap<String,String>();  

        pathsMap.put("admin.war","laike-admin-store/target/admin.war");  
        pathsMap.put("app.war","laike-app/target/app.war");  
        pathsMap.put("coupon.war","laike-coupon/target/coupon.war");  
        pathsMap.put("file.war","laike-file/target/file.war");  
        pathsMap.put("gateway.war","laike-gateway/target/gateway.war");  
        pathsMap.put("mch.war","laike-mch/target/mch.war");  
        pathsMap.put("order.war","laike-order/target/order.war");  
        pathsMap.put("product.war","laike-products/target/product.war");  
        pathsMap.put("payment.war","laike-payment/target/payment.war");  
        pathsMap.put("laike-task.war","laike-task/target/laike-task.war");  
        pathsMap.put("user.war","laike-user/target/user.war");  
        pathsMap.put("mall.war","laike-store-pc/target/mall.war");  
        pathsMap.put("admin-mch.war","laike-admin-mch/target/admin-mch.war");  
        pathsMap.put("distribute.war","laike-plugin-distribution/target/distribute.war");  

        String toPaht = "laike-admin-store/src/test/java/com/laiketui/store/";  

        File tofile = null;  
        File fromfile = null;  
        Set<String> modulepaths = pathsMap.keySet();  
        for (String modulepath :modulepaths ) {  
            fromfile = new File(root + "/" + pathsMap.get(modulepath));  
            if(fromfile.exists()){  
                tofile = new File(root + "/" + toPaht+"/wars/" + modulepath);  
                FileCopyUtils.copy(fromfile,tofile);  
                System.out.println("获取: " + fromfile.getName()+" 成功!");  
            }  
        }  

        System.out.println("success!!");  
    }  


}