我正在编写一个 Adobe AIR 应用程序,该应用程序需要使用 maven 和 nexus 在 CI 中构建。我尝试关注这篇文章,这是来自源代码的最新文章,但我仍然不明白这些东西:
- 文章中的第一个和第二个 pom.xml 示例是否在同一个 pom.xml 文件中?
- 如何获取我的 CI 上的 Flex SDK 依赖项?
如果有人有一个完整的项目设置并经历了整个事情,那就太棒了。
这个博客有一些关于使用 Maven 2 构建 Air 应用程序的有用信息。
就您编号的问题而言
第 1 部分:教程中的两个 POM 是不同的。第一个创建包含应用程序组件的 swf 包。第二个 POM 依赖于 swf 包(注意第二个 POM 中的依赖于第一个中的 artifactId Air)。第二个 POM 定义解包 swf 包的处理(使用依赖插件),然后使用 exec 插件对解包的包内容调用 adt。
因此,所描述的过程分为两个部分。第一个 POM 将 swf 文件打包,以便它们在存储库中可用。第二个 POM 将从 Maven 存储库中检索所需的任何包并调用 adt 来编译它们。所以如果你有多个 Air 包,可以修改第二个 POM 以下载额外的包并编译它们。
第 2 部分:您需要的大多数依赖项都托管在Sonatype 公共存储库中,一个值得注意的例外似乎是 adt.jar。您可以使用部署插件的部署文件目标将 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>