Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Maven发行版:执行似乎打破了构建助手:添加源代码_Apache Flex_Actionscript 3_Maven 2_Build Automation_Flexmojos - Fatal编程技术网

Apache flex Maven发行版:执行似乎打破了构建助手:添加源代码

Apache flex Maven发行版:执行似乎打破了构建助手:添加源代码,apache-flex,actionscript-3,maven-2,build-automation,flexmojos,Apache Flex,Actionscript 3,Maven 2,Build Automation,Flexmojos,我有一个相当简单的Flex SWC模块,它是通过Maven Flexmojos插件编译的。该模块还在generate sources阶段使用flexmojos:generate目标创建Java服务和域类的Actionscript3等价物。常规源位于src/main/flex中,生成的源位于src/main/flex generated中。生成的源未签入Subversion。与许多其他flexmojos用户一样,我使用构建助手:添加源代码目标将第二个源代码树添加到我的编译中。这几个月来一直运行良好

我有一个相当简单的Flex SWC模块,它是通过Maven Flexmojos插件编译的。该模块还在generate sources阶段使用flexmojos:generate目标创建Java服务和域类的Actionscript3等价物。常规源位于
src/main/flex
中,生成的源位于
src/main/flex generated
中。生成的源未签入Subversion。与许多其他flexmojos用户一样,我使用构建助手:添加源代码目标将第二个源代码树添加到我的编译中。这几个月来一直运行良好,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 
请注意,文件是在正确的位置生成的,正确调用了build helper,但是flex compiler.source-path缺少生成的源目录,因此产生了一个flex class not found错误。这个问题让我感到惊讶的是,release:prepare在forked-Maven生命周期中做了一个[clean,verify],而且它是有效的,但是release:perform没有……所以看起来问题并不在于fork

以下是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>

org.codehaus.mojo
构建助手maven插件
添加源
生成源
添加源
${project.basedir}/src/main/flex已生成
请注意,如果我放弃构建助手插件并使用flexmojo的SourcePath配置,那么一切都可以正常工作

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

${project.basedir}/src/main/flex
${project.basedir}/src/main/flex已生成

但是,SourcePath已被弃用,对于那些具有多个flex源代码树的源代码,未来的发展方向是build helper。

除了flex生成的源代码未签入SVN之外,您可能还需要在
target
文件夹下生成它们。我认为这可能会混淆发布插件。尝试在该文件夹下生成源代码,并使用build helper插件将其添加到构建中。

这里也有同样的问题。文件是否签入版本控制似乎无关紧要,因为我在签入和不签入的情况下都尝试过,结果是一样的

我将尝试将我的添加到同一个源路径,看看它是否解决了问题,但这肯定是一个折衷方案。我第一次尝试这样做时,似乎GraniteDS并不特别喜欢它

编辑:我刚刚查看了flexmojos插件的源代码,SourcePath并没有被弃用。这是在从行李箱结账后发生的

svn co http://svn.sonatype.org/flexmojos/trunk flexmojos
瞧,

我有一个类似的问题,我想在jar中打包一个.xml文件。为了添加它,我使用了buildhelpermaven插件,并像上面一样添加了它。在构建过程中运行良好,但在发布时:perform将丢失.xml文件

相反,我发现通过使用POM的
部分,我过得更好。我还采纳了MaestroDev用户指南的建议,将.xml文件视为二进制文件,并将一些信息放在POM中以防止其被过滤

(底部称为“防止二进制资源过滤”)

这似乎对我有用。不确定它是否适合您,因为flex是如何构建的,但它看起来不像您已经有了一段时间的答案,这可能就是:)