build.sh 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #!/bin/bash
  2. set -e
  3. env='test'
  4. base_dir=`pwd`
  5. config_dir="${base_dir}/config"
  6. proj_dir="${base_dir}/tmp/proj"
  7. bin_dir="${base_dir}/tmp/bin"
  8. echo "创建 proj 目录和 bin 目录..."
  9. if [ -d ${proj_dir} ]; then
  10. echo ${proj_dir}" exist"
  11. # rm -rf ${proj_dir}
  12. else
  13. mkdir -p ${proj_dir}
  14. fi
  15. if [ -d ${bin_dir} ]; then
  16. echo ${bin_dir}" exist"
  17. # rm -rf ${bin_dir}
  18. else
  19. mkdir -p ${bin_dir}
  20. fi
  21. ###############################################################################
  22. # clone 项目
  23. ###############################################################################
  24. clone_proj() {
  25. cd ${proj_dir}
  26. git clone --depth=1 https://git.reghao.cn/reghao/jutil
  27. git clone --depth=1 https://git.reghao.cn/reghao/oss
  28. git clone --depth=1 https://git.reghao.cn/reghao/bnt
  29. git clone --depth=1 https://git.reghao.cn/reghao/tnb
  30. git clone --depth=1 https://git.reghao.cn/reghao/tnbapp
  31. }
  32. ###############################################################################
  33. # 安装依赖
  34. ###############################################################################
  35. build_dependencies() {
  36. cd ${proj_dir}/jutil
  37. mvn clean install -Dmaven.test.skip
  38. cd ${proj_dir}/oss
  39. mvn clean install -Dmaven.test.skip -pl oss-api
  40. mvn clean install -Dmaven.test.skip -pl oss-sdk
  41. ###############################################################################
  42. # 安装 tnb 项目提供的依赖
  43. ###############################################################################
  44. cd ${proj_dir}/tnb
  45. mvn clean install -am -Dmaven.test.skip -pl common
  46. mvn clean install -am -Dmaven.test.skip -pl log
  47. mvn clean install -am -Dmaven.test.skip -pl account/account-api/
  48. mvn clean install -am -Dmaven.test.skip -pl user/user-api/
  49. mvn clean install -am -Dmaven.test.skip -pl message/message-api/
  50. mvn clean install -am -Dmaven.test.skip -pl content/content-api/
  51. mvn clean install -am -Dmaven.test.skip -pl file/file-api/
  52. mvn clean install -am -Dmaven.test.skip -pl data/data-api/
  53. ###############################################################################
  54. # 安装 bnt 项目提供的依赖
  55. ###############################################################################
  56. cd ${proj_dir}/bnt
  57. mvn clean install -Dmaven.test.skip -pl admin-api
  58. }
  59. ###############################################################################
  60. # 修改第三方服务依赖配置
  61. ###############################################################################
  62. replace_server_config() {
  63. cd ${config_dir}
  64. java -jar deployer.jar application.yml ${proj_dir}
  65. }
  66. ###############################################################################
  67. # 构建后端应用
  68. ###############################################################################
  69. build_backend() {
  70. ###############################################################################
  71. # 构建 oss 项目 jar 包
  72. ###############################################################################
  73. cd ${proj_dir}/oss
  74. mvn clean package -Dmaven.test.skip -pl oss-store -P${env}
  75. if [ ! -d ${bin_dir}/oss-store ]; then
  76. mkdir ${bin_dir}/oss-store
  77. fi
  78. cp oss-store/bin/* ${bin_dir}/oss-store
  79. ###############################################################################
  80. # 构建 bnt 项目 jar 包
  81. ###############################################################################
  82. cd ${proj_dir}/bnt
  83. mvn clean package -Dmaven.test.skip -pl web -P${env}
  84. cp web/bin/bntweb.jar ${bin_dir}
  85. ###############################################################################
  86. # 构建 tnb 项目 jar 包
  87. ###############################################################################
  88. cd ${proj_dir}/tnb
  89. mvn clean package -Dmaven.test.skip -P${env}
  90. cp gateway/target/tnb-gateway.jar ${bin_dir}
  91. cp account/account-service/target/tnb-account.jar ${bin_dir}
  92. cp user/user-service/target/tnb-user.jar ${bin_dir}
  93. cp message/message-service/target/tnb-message.jar ${bin_dir}
  94. cp file/file-service/target/tnb-file.jar ${bin_dir}
  95. cp content/content-service/target/tnb-content.jar ${bin_dir}
  96. cp data/data-service/target/tnb-data.jar ${bin_dir}
  97. }
  98. ###############################################################################
  99. # 构建前端应用
  100. ###############################################################################
  101. build_front() {
  102. ###############################################################################
  103. # 构建 tnbapp 项目
  104. ###############################################################################
  105. cd ${proj_dir}/tnbapp
  106. npm --registry http://registry.npm.taobao.org i
  107. npm run build
  108. if [ ! -d ${bin_dir}/tnbapp ]; then
  109. mkdir ${bin_dir}/tnbapp
  110. fi
  111. cp -r dist/* ${bin_dir}/tnbapp
  112. }
  113. echo "clone 项目..."
  114. # clone_proj
  115. echo "构建依赖..."
  116. # build_dependencies
  117. echo "修改第三方服务依赖配置..."
  118. replace_server_config
  119. echo "构建后端应用..."
  120. build_backend
  121. echo "构建前端应用..."
  122. # build_front