【问题标题】:Adobe Flex/AIR Maven integrationAdobe Flex/AIR Maven 集成
【发布时间】:2010-11-23 10:58:54
【问题描述】:
我正在编写一个 Adobe AIR 应用程序,它需要使用 maven 和 nexus 在 CI 中构建。我尝试关注this article,这是来自源的最新文章,但我仍然不明白这些东西:
- 文章中的第一个和第二个 pom.xml 示例是否在同一个 pom.xml 文件中?
- 如何获取我的 CI 上的 Flex SDK 依赖项?
如果有人有一个完整的项目设置并完成整个事情,那就太棒了。
【问题讨论】:
标签:
apache-flex
maven-2
air
nexus
pom.xml
【解决方案1】:
This blog 提供了一些关于使用 Maven 2 构建 Air 应用程序的有用信息。
就您的编号问题而言
第 1 部分:教程中的两个 POM 是不同的。第一个创建包含应用程序组件的 swf 包。第二个 POM 依赖于 swf 包(注意第二个 POM 中的依赖于第一个中的 artifactId Air)。第二个 POM 定义解压 swf 包的处理(使用依赖插件),然后使用 exec 插件对解压的包内容调用 adt。
因此,所描述的过程分为两个部分。第一个 POM 将 swf 文件打包,以便它们在存储库中可用。第二个 POM 将从 Maven 存储库中检索所需的任何包并调用 adt 来编译它们。因此,如果您有多个 Air 包,可以修改第二个 POM 以下载额外的包并进行编译。
第 2 部分:您需要的大部分依赖项都托管在 Sonatype public repository 中,一个值得注意的例外似乎是 adt.jar。您可以使用部署插件的 deploy-file 目标将 adt.jar 部署到 Maven 存储库管理器,例如 Nexus。
这将使用与教程匹配的凭据将 adt.jar 部署到存储库:
mvn deploy:deploy-file -Durl=http://path/to/repository -DrepositoryId=[some.id]
-Dfile=adt.jar -DgroupId=com.adobe.flex.compiler -DartifactId=adt
-Dversion=3.3.0.4852 -DgeneratePom=true -DgeneratePom.description="Flex ADT"
要引用 Nexus 公共存储库,请将存储库声明添加到您的 settings.xml 或 pom.xml,如下所示:
<repositories>
<repository>
<id>nexus-public</id>
<url>http://repository.sonatype.org/content/groups/public</url>
</repository>
</repositories>