简介

本小节将介绍 Ark Biz 目录结构,以及如何使用官方插件 sofa-ark-maven-plugin 打包并发布 Ark Biz

Ark Biz 包和 Ark 包 都是使用 Maven 插件 sofa-ark-maven-plugin 打包生成;工程应用在配置该插件时,默认情况下只会打包发布 Ark 包, 只有在配置参数 attach 为 true 时,才会打包发布 Ark Biz

  1. <build>
  2. <plugin>
  3. <groupId>com.alipay.sofa</groupId>
  4. <artifactId>sofa-ark-maven-plugin</artifactId>
  5. <version>${sofa.ark.version}</version>
  6. <executions>
  7. <execution>
  8. <id>default-cli</id>
  9. <goals>
  10. <goal>repackage</goal>
  11. </goals>
  12. </excution>
  13. </executions>
  14. <configuration>
  15. <attach>false</attach>
  16. </configuration>
  17. </plugin>
  18. </build>

Ark BizArk 包 有什么区别呢? 简单来说,Ark Biz 是工程应用所有资源的组织单元,它包含了应用启动所需的所有资源,详细可参考下文描述的 Ark Biz 目录格式;而工程应用打出来的 Ark 包,是一个通过 java -jar 启动,运行在 SOFAArk 容器的 Fat Jar,不仅包含应用工程对应的 Ark Biz,也包含 Ark Container,以及应用依赖的 Ark Plugin

通常情况,只需要发布 Ark 包 即可,但是 SOFAArk 是支持运行多个 Ark Biz的,因此如果开发者希望自己应用的 Ark Biz 包能够被其他应用直接当成 Jar 包依赖,进而运行在同一个 SOFAArk 容器之上,那么就需要打包发布 Ark Biz 包

Ark-Biz 典型目录结构

  1. .
  2. ├── META-INF
  3. ├── MANIFEST.MF
  4. ├── maven
  5. └── me.qlong.tech
  6. └── sofa-boot-demo3-web
  7. ├── pom.properties
  8. └── pom.xml
  9. └── sofa-boot-demo3
  10. └── sofa-boot-demo3-web.xml
  11. ├── com
  12. └── alipay
  13. └── sofa
  14. └── ark
  15. └── biz
  16. └── mark
  17. ├── config
  18. ├── application-dev.properties
  19. ├── application-test.properties
  20. └── application.properties
  21. ├── lib
  22. ├── spring-beans-4.3.4.RELEASE.jar
  23. ├── spring-boot-1.4.2.RELEASE.jar
  24. ├── spring-boot-autoconfigure-1.4.2.RELEASE.jar
  25. ├── spring-boot-devtools-1.4.2.RELEASE.jar
  26. ├── spring-boot-starter-1.4.2.RELEASE.jar
  27. ├── spring-boot-starter-logging-1.4.2.RELEASE.jar
  28. ├── spring-boot-starter-tomcat-1.4.2.RELEASE.jar
  29. ├── spring-boot-starter-web-1.4.2.RELEASE.jar
  30. ├── spring-context-4.3.4.RELEASE.jar
  31. ├── spring-core-4.3.4.RELEASE.jar
  32. ├── spring-expression-4.3.4.RELEASE.jar
  33. ├── spring-web-4.3.4.RELEASE.jar
  34. ├── ...
  35. ├── ...
  36. ├── ...
  37. └── velocity-1.7.jar
  38. ├── logback-spring.xml
  39. ├── me
  40. └── qlong
  41. └── tech
  42. └── SOFABootWebSpringApplication.class
  43. └── static
  44. └── index.html

上述目录结构相关文件和目录说明如下:

普通的 Java 工程或者 Spring Boot Core/Web 工程都可以打包成 Ark BizArk Biz 没有固定的目录格式,它只是在原来 Jar 包结构基础上新增两个目录文件:

  • com/alipay/sofa/ark/biz/mark : 标记文件,标记该 Jar 包是 sofa-ark-maven-plugin 打包生成的 Ark Biz 文件;

  • lib/ : lib 目录存放工程应用的三方依赖,