pom.xml配置
本文主要對 SOFABoot Web 工程和 Core 工程中的配置文件 pom.xml 進行說明。2 個工程在配置上的區(qū)別,主要是<module>內(nèi)容的不同。
Web 工程的 pom.xml 配置說明
Web 工程完整版 pom.xml
配置,請參考 完整版 pom.xml。下文將就 SOFABoot Web 工程 pom.xml 中的重要標簽進行詳細介紹。
parent 標簽說明
請移步 版本說明,查看最新的 SOFABoot 版本,在工程根目錄下的主 pom.xml 中,修改下圖所示例項的版本號:
project 標簽說明
在 <project>
標簽中,所聲明的工程坐標,包括以下內(nèi)容,可根據(jù)工程需要,進行修改:
modelVersion:聲明工程描述應遵循的 POM 模型版本。
groupId:工程的全球唯一標識符,一般為公司域名或組織域名的反寫。示例工程為:
com.alipay.sofa
。artifactId:工程的構(gòu)件標識符。
version:工程版本號。SNAPSHOT 意為快照,說明該項目還在開發(fā)中,是不穩(wěn)定的版本。
packaging:工程產(chǎn)生的構(gòu)件類型,例如 jar、war、ear、pom。
name:工程的名稱,非必選項。
url:工程主頁的 URL,非必選項。
了解這些元素的具體含義,可參見 Apache Maven 官方文檔(英文)。
dependencies 標簽說明
在 <dependencies>
標簽中,聲明了工程相關的所有依賴,說明如下:
模塊標簽
工程原型默認生成 app/endpoint
和 app/web
兩個模塊(module):
<modules>
<module>app/endpoint</module>
<module>app/web</module>
</modules>
endpoint 模塊
endpoint
模塊是 SOFAREST 的服務模塊,對外提供 SOFAREST 服務。SOFABoot Web 工程的 app/endpoint
模塊中,默認添加了 SOFAREST 的依賴。
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>rest-enterprise-sofa-boot-starter</artifactId>
</dependency>
SOFABoot 使用一系列的 {XXXXXX}-sofa-boot-starter
來統(tǒng)一管理中間件的依賴。例如,您需要新增對 RPC 中間件的依賴,可以在 pom.xml
中添加以下配置:
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>rpc-enterprise-sofa-boot-starter</artifactId>
</dependency>
web 模塊
web
模塊是啟動模塊,包含 main
函數(shù)后可以直接運行,同時將全局的配置文件以及靜態(tài)資源等放在這個模塊下。
打包部署說明
SOFABoot Web 工程在 Web 模塊中配置 構(gòu)建(build),使用 spring-boot-maven-plugin 作為構(gòu)建工具并在工程根目錄的 target
下生成一個 fat JAR(.jar)包。該 fat JAR 包是一個可部署單元,有本地和云端 2 種部署方式:
本地部署:可運行
java -jar
命令啟動該.jar
包;云端部署:當上傳到 SOFAStack 平臺進行部署時,只需要上傳該 fat JAR 文件,SOFABoot 技術棧會自動配合 SOFAStack 的部署平臺為您部署。
build
標簽示例如下:
<build>
<plugins>
<!-- http://docs.spring.io/spring-boot/docs/current/maven-plugin/usage.html -->
<plugin>
<groupId>org.springframework.boot</groupId>
<!-- http://docs.spring.io/spring-boot/docs/current/maven-plugin/usage.html -->
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
<configuration>
<!-- 可部署的 fat JAR 打包在工程的根目錄的 target 下面 -->
<outputDirectory>../../target</outputDirectory>
<classifier>executable</classifier>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Core 工程的 pom.xml 配置說明
Core 工程完整版 pom.xml
配置,請參考 完整版 pom.xml。下文將就 SOFABoot Core 工程 pom.xml 中的重要標簽進行詳細介紹。
parent 標簽說明
請移步 版本說明,查看最新的 SOFABoot 版本,在工程根目錄下的主 pom.xml 中,修改下圖所示例項的版本號:
project 標簽說明
請您參考上文 Web 工程中的相關說明。
dependencies 標簽說明
在 <dependencies>
標簽中,聲明了工程相關的所有依賴,說明如下:
模塊標簽
工程原型默認生成 APPNAME-facade
和 APPNAME-service
兩個模塊(module):
<modules>
<module>APPNAME-facade</module>
<module>APPNAME-service</module>
</modules>
facade 模塊
facade
模塊用于定義服務的接口,同時在使用 RPC 中間件時方便將這個模塊打包的 JAR 分發(fā)給服務的調(diào)用方。
service 模塊
service
模塊包含的配置信息包括 全局配置、應用的日志配置文件 以及 技術棧相關的配置信息。service
模塊引入 facade
模塊和 RPC 中間件需要的所有依賴。以下是 service
模塊的 pom.xml
:
下載 service module 的 pom.xml
service module 的 pom.xml 說明
<!-- facade 依賴--> <dependency> <groupId>com.alipay.sofa</groupId> <artifactId>APPNAME-facade</artifactId> </dependency> <!--引入了 RPC 中間件需要的所有依賴--> <dependency> <groupId>com.alipay.sofa</groupId> <artifactId>rpc-enterprise-sofa-boot-starter</artifactId> </dependency>
打包部署說明
關于打包部署方式,請您參考上文 Web 工程中 打包部署說明。