Ark Biz 介绍

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

打包发布 Ark Biz

Ark Biz 包和 Ark 包都使用 sofa-ark-maven-plugin 插件打包生成。工程应用在配置该插件时,默认情况下只会打包发布 Ark 包,只有在配置参数attachtrue时,才会打包发布 Ark Biz,如下所示:

<build>
    <plugin>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>sofa-ark-maven-plugin</artifactId>
        <version>${sofa.ark.version}</version>
        <executions>
            <execution>
                <id>default-cli</id>
                <goals>
                    <goal>repackage</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <attach>false</attach>
        </configuration>
    </plugin>
</build>

Ark Biz 和 Ark 包的区别

  • 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 典型目录结构

.
├── META-INF
│    ├── MANIFEST.MF
│    ├── maven
│    │    └── me.qlong.tech
│    │         └── sofa-boot-demo3-web
│    │              ├── pom.properties
│    │              └── pom.xml
│    └── sofa-boot-demo3
│         └── sofa-boot-demo3-web.xml
├── com
│    └── alipay
│         └── sofa
│              └── ark
│                   └── biz
│                        └── mark
├── config
│    ├── application-dev.properties
│    ├── application-test.properties
│    └── application.properties
├── lib
│    ├── spring-beans-4.3.4.RELEASE.jar
│    ├── spring-boot-1.4.2.RELEASE.jar
│    ├── spring-boot-autoconfigure-1.4.2.RELEASE.jar
│    ├── spring-boot-devtools-1.4.2.RELEASE.jar
│    ├── spring-boot-starter-1.4.2.RELEASE.jar
│    ├── spring-boot-starter-logging-1.4.2.RELEASE.jar
│    ├── spring-boot-starter-tomcat-1.4.2.RELEASE.jar
│    ├── spring-boot-starter-web-1.4.2.RELEASE.jar
│    ├── spring-context-4.3.4.RELEASE.jar
│    ├── spring-core-4.3.4.RELEASE.jar
│    ├── spring-expression-4.3.4.RELEASE.jar
│    ├── spring-web-4.3.4.RELEASE.jar
│    ├──...
│    ├──...
│    ├──...
│    └── velocity-1.7.jar
├── logback-spring.xml
├── me
│    └── qlong
│         └── tech
│              └──SOFABootWebSpringApplication.class
└──static
    └── index.html

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

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

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

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