build.sh 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #!/bin/bash
  2. set -e
  3. env='test'
  4. base_dir=`pwd`
  5. config_dir="${base_dir}/config"
  6. proj_dir="${base_dir}/build/proj"
  7. bin_dir="${base_dir}/build/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_app() {
  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. # 构建 tnbapp 项目
  99. ###############################################################################
  100. cd ${proj_dir}/tnbapp
  101. npm --registry http://registry.npm.taobao.org i
  102. npm run build
  103. if [ ! -d ${bin_dir}/tnbapp ]; then
  104. mkdir ${bin_dir}/tnbapp
  105. fi
  106. cp -r dist/* ${bin_dir}/tnbapp
  107. }
  108. echo "clone 项目..."
  109. clone_proj
  110. echo "修改第三方服务依赖配置..."
  111. replace_server_config
  112. echo "构建依赖..."
  113. build_dependencies
  114. echo "构建应用..."
  115. build_app