build.sh 5.2 KB

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