Maven release:perform 似乎破坏了 build-helper:add-source

2023-12-19

我有一个相当简单的 Flex SWC 模块,它是通过 Maven Flexmojos 插件编译的。该模块还在生成源阶段使用 flexmojos:generate 目标来创建我的 Java 服务和域类的 Actionscript3 等效项。常规来源位于src/main/flex生成的源位于src/main/flex-generated。生成的源代码不会签入 Subversion。与许多其他 flexmojos 用户一样,我使用 build-helper:add-source 目标将第二个源树添加到我的编译中。这几个月以来一直运行良好,Maven 输出通常如下所示:

[INFO] ------------------------------------------------------------------------
[INFO] Building myproj Core Client -- Flex Service
[INFO]    task-segment: [deploy]
[INFO] ------------------------------------------------------------------------
[INFO] [flexmojos:generate {execution: create-actionscript-classes}]
[INFO] Flexmojos 3.7.1
[INFO]   Apache License - Version 2.0 (NO WARRANTY) - See COPYRIGHT file
[INFO] flexmojos 3.7.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
[INFO] Calling the generator for each Java class.
[INFO]   Generating: /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex-generated/com/myprojvision/core/domain/security/Group.as
.......
[INFO] [build-helper:add-source {execution: add-source}]
[INFO] Source directory: /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex-generated added.
[INFO] Flex compiler configurations:
.....
-compiler.source-path /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex /home/bsmith/develop/myproj/myproj-core/tags/myproj-core-1.0.2/flex-service/src/main/flex

请注意,flex 编译器源路径如何很好地表示两个源目录。此设置将成功打包、安装和部署 SWC 工件。然而,现在我们希望使用 Maven 发布插件来自动化发布过程。这release:prepare目标运行良好。然而,release:perform 目标失败,因为由于某种未知原因,flex 编译器没有获得生成的源目录:

[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Building myproj Core Client -- Flex Service
[INFO] [INFO]    task-segment: [deploy]
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] [flexmojos:generate {execution: create-actionscript-classes}]
[INFO] [INFO] Flexmojos 3.7.1
[INFO] [INFO]    Apache License - Version 2.0 (NO WARRANTY) - See COPYRIGHT file
[INFO] [INFO] Calling the generator for each Java class.
[INFO] [INFO]   Generating: /home/bsmith/develop/myproj/myproj-core/trunk/target/checkout/flex-service/src/main/flex-generated/com/myprojvision/core/domain/security/Group.as
...
[INFO] [INFO] [build-helper:add-source {execution: add-source}]
[INFO] [INFO] Source directory: /home/bsmith/develop/myproj/myproj-core/trunk/target/checkout/flex-service/src/main/flex-generated added.
...
[INFO] [INFO] Flex compiler configurations:
[INFO] -compiler.source-path /home/bsmith/develop/myproj/myproj-core/trunk/target/checkout/flex-service/src/main/flex 

请注意,文件是在正确的位置生成的,构建帮助程序被正确调用,但 flex compiler.source-path 缺少生成的源目录,因此会产生 Flex class-not-found 错误。这个问题让我感到惊讶的是,release:prepare 在分叉的 Maven 生命周期中执行了 [clean, verify] 并且它有效,但 release:perform 却没有......所以看起来它不是叉子就是问题所在。

这是 build-helper 插件的配置:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>${project.basedir}/src/main/flex-generated</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

请注意,如果我放弃构建助手插件并使用 flexmojo 的 sourcePaths 配置,那么一切都会正常工作。

<sourcePaths>
   <path>${project.basedir}/src/main/flex</path>
   <path>${project.basedir}/src/main/flex-generated</path>
</sourcePaths>

然而,sourcePaths 已被弃用,对于那些拥有多个 Flex 源树的人来说,前进的道路是构建助手。


此外,flex 生成的源不会签入 SVN,您可能需要在target文件夹。我认为这可能会使发布插件感到困惑。尝试在该文件夹下生成源代码,并使用 build-helper 插件将其添加到构建中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven release:perform 似乎破坏了 build-helper:add-source 的相关文章

  • 如何从不知道要卸载的工件名称或工件组 ID 的脚本中执行与 mvn install 相反的操作? [复制]

    这个问题在这里已经有答案了 这听起来应该很容易 但我还没有找到答案 如果我使用 mvn install 安装一个工件 如何删除该工件 我尝试使用 dependency purge local repository 但它只删除依赖项 而不是实
  • FlexUnit ANT 任务挂起

    我正在使用 ANT 任务在构建服务器上运行 FlexUnit 当我从 Flash Builder 4 运行 Flex 单元测试时 它工作正常 但是当从 ANT 运行时 它会打开默认播放器 在我的例子中是 FireFox 成功运行 FU 但永
  • 在 Mac OS X (Mavericks) 上的 Adob​​e AIR 中的两台显示器上显示两个全屏窗口

    我使用的是 Mac OS X Mavericks 使用 Adob e AIR 我想在两个显示器 内置笔记本电脑视网膜显示器和外部 HDMI 显示器 上分别显示单独的全屏窗口 我可以在主显示器上获得全屏窗口 在辅助显示器上获得几乎全屏的窗口
  • 多模块 Web 项目中的 Maven:如何将同级模块输出放入 WEB-INF/classes,而不是作为 JAR 放入 WEB-INF/lib?

    我有一个多模块 Maven 项目 默认情况下 当我构建 Web 模块时 它所依赖的所有 JAR 类型的同级模块都会复制到 WEB INF lib 文件夹中 我希望将同级模块的输出放置在 WEB INF classes 文件夹中 而不打包到
  • flash/flex:渐进式下载与 rtmp

    我试图理解并真正确定何时在 Flex flash 中使用渐进式下载与 rtmp 看来主要的一点是 rtmp 不与 http 一起提供服务 而渐进式下载则由 http 提供 由于它不是 rtmp 因此资源受到保护 因为无法从 swf 外部连接
  • 如何使用 Maven 创建新的 Eclipse RCP 项目?

    如何使用 Maven 创建新的 Eclipse RCP 项目 最好是m2eclipse http maven apache org eclipse plugin html 我读到有一个关于 Eclipse 的 Maven 插件 Maven
  • as3 事件 - 类型强制失败?

    我正在将事件从孩子发送到父母 swf 它工作正常 直到我使用预加载器 swf 加载父级 然后父级停止从子级获取事件 我现在收到此错误 TypeError Error 1034 Type Coercion failed cannot conv
  • 在 Flex 选项卡式视图导航器之间切换

    我正在开发 FlexTabbedViewNavigatorApplication具有三个选项卡 ViewNavigator 元素 我想根据用户操作 通过 ActionScript 代码 从一个 ViewNavigator 切换到另一个 Vi
  • 换肤时访问 hostComponent 的自定义属性 - Flex 4.5、SDK 4.5

    使用 SDK 4 1 我能够从自定义皮肤访问自定义按钮组件的自定义属性 我当前正在工作的项目需要 SDK 4 5 但我无法访问这些属性 这是一个例子 自定义按钮组件
  • 如何从 Flex Spark 列表的 DataProvider 对象获取其 ItemRenderer?

    在 Flex 中 我可以创建一个 ItemRenderer 来表示列表 DataProvider 中的每个项目 但如何通过 DataProviders 对象访问 ItemRenderer 的实例 就像是myList getItemRende
  • 用于多个项目构建的多个设置 gradle 文件

    我有以下项目结构 gt Starnderd Location gt Project1 gt settings gradle gt build gradle gt Subproject11 gt build gradle gt Subproj
  • 如何使用蚂蚁?

    我一直试图了解 Ant 的用途 但我仍然不明白 有人可以给我一个使用 Ant 的用例吗 我可以尝试看看 Ant 为何有用以及我可以用它做什么 我在 Eclipse 中进行 Java 开发 并且刚刚开始使用 servlet 和 Google
  • 弹性图表隐藏数据提示

    我们从多个源获取数据 并且某个日期的数据可能存在也可能不存在 因此 对于没有数据的点 我们发送 NaN 问题 在下面的代码中 有没有办法不显示那些为空的数据提示 我添加了一个数据提示功能 但它确实显示了一个小的空方块 是否有可能甚至不显示
  • 使用多个模块时优化 Flex

    我有一个 Flex 应用程序 加载时间非常重要 消费者网站 我希望能够在屏幕上显示一些内容 然后允许根据需要加载其他模块 我面临的问题是所有模块的总和比我将所有组件包含在单个 swf 文件中要大得多 原因很明显 例如 访问 Web 服务所需
  • 在 Java 构建过程中更改常量的最佳方法

    我继承了一个在 Tomcat 下运行的 Java 应用程序 servlet 由于历史原因 根据应用程序的部署位置 本质上是品牌问题 代码具有不同的 外观和感觉 选项 有几个常量控制这个品牌过程 它们具有不同的功能 不应压缩为单个常量 即 B
  • html 表单发布到 Flex 应用程序

    我有一个基本完成的 Flex 应用程序 它使用 Zend AMF 来连接 提供数据 我的应用程序确实有一个登录屏幕 看起来工作正常 现在我想在我的网站上添加另一个登录表单 允 许用户输入用户名 密码 提交表单时应将数据传递给 Flex 应用
  • 如何在动作脚本 3 中设置/访问外部 swf 文件的动态文本字段?

    我正在处理一个 fla 文件 其中添加了一个 swf 文件 我如何在该 swf 文件的动态文本上设置文本 有没有直接设置文本的方法 我不想在 url 中作为参数传递 我试过这样 var rq URLRequest new URLReques
  • 可以禁用“应用程序错误”对话框吗?

    我使用 Hudson 作为持续集成服务器来测试 C C 代码 不幸的是 我在某个地方有一个错误导致内存损坏 因此在某些 Windows 计算机上我有时会收到一个 应用程序错误 对话框 解释一条指令引用了无法读取的内存 弹出此对话框并基本上挂
  • 如何定制Maven唯一版本字符串?

    我想知道有哪些选项可以自定义 Maven 工件部署时使用的时间戳字符串
  • 在 ActionScript 3 中在形状上绘制文本

    有没有办法仅使用 ActionScript 在 DisplayObject 或 Shape 中绘制文本 我在网上找到的唯一方法是创建 TextField 但我无法将 TF 添加到 DisplayObject 或 Shape Edit 解决了

随机推荐