A.1. app-component.xml
需要把当前应用程序作为别的应用程序的组件时,需要使用 app-component.xml
配置文件。此文件定义了对于其它组件的依赖、描述了目前存在的应用程序模块,生成的工件以及暴露的应用程序属性。
app-component.xml
文件应该被放在一个包内,通过 global 模块 JAR 包组装清单文件(manifest)的 App-Component-Id
记录来指定。这个组装文件的记录使得构建系统能从构建 classpath 中查找需要的项目的组件。因此,如果需要在项目中使用某些组件,只需要在 build.gradle 文件中的 dependencies/appComponent
条目定义组件的 global 工件即可。
按照惯例,app-component.xml
在项目的包名根路径(root package)(定义在 metadata.xml),这个根路径跟 build.gradle 中定义的项目工件的组名称一样:
App-Component-Id == root-package == cuba.artifact.group == e.g. 'com.company.sample'
使用 CUBA Studio 来自动生成 app-component.xml
文件和当前项目的组装清单记录。
- 用第三方依赖作为 appJars:
如果需要被引入组件的第三方依赖跟应用程序的工件(app-comp-core
或者app-comp-web
)一起部署到tomcat/webapps/app[-core]/WEB-INF/lib/
目录,需要将这些第三方依赖作为 appJar 类库添加:<module blocks="core"
dependsOn="global,jm"
name="core">
<artifact appJar="true"
name="cuba-jm-core"/>
<artifact classifier="db"
configuration="dbscripts"
ext="zip"
name="cuba-jm-core"/>
<!— Specify only the artifact name for your appJar 3rd party library —>
<artifact name="javamelody-core"
appJar="true"
library="true"/>
</module>
如果不希望将项目作为 app 组件使用,需要在build.gradle
的 deploy 任务中将这些依赖作为 appJars 添加:configure(coreModule) {
//…
task deploy(dependsOn: assemble, type: CubaDeployment) {
appName = 'app-core'
appJars('app-global', 'app-core', 'javamelody-core')
}
//…
}