MavenFlexmojosプラグインを介してコンパイルされた非常に単純なFlexSWCモジュールがあります。このモジュールは、ソースの生成フェーズでflexmojos:generateゴールを使用して、Javaサービスおよびドメインクラスに相当するActionscript3を作成します。通常のソースはに格納されsrc/main/flex
、生成されたソースはにありsrc/main/flex-generated
ます。生成されたソースはSubversionにチェックインされません。他の多くのflexmojosユーザーと同様に、build-helper:add-sourceゴールを使用して、この2番目のソースツリーをコンパイルに追加します。これは何ヶ月もうまく機能しており、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コンパイラのsource-pathが両方のソースディレクトリをどれほどうまく表現しているかに注目してください。このセットアップは、SWCアーティファクトを正常にパッケージ化、インストール、および展開します。ただし、リリースプロセスを自動化するために、Mavenリリースプラグインを使用したいと思います。release:prepare
ゴールはうまくいきます。ただし、いくつかの不明な理由により、flexコンパイラが生成されたソースディレクトリを渡されないため、release:performの目標は失敗します。
[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
ファイルは適切な場所で生成され、ビルドヘルパーは正しく呼び出されますが、flexcompiler.source-pathに生成されたソースディレクトリがないため、Flexクラスが見つかりませんというエラーが生成されることに注意してください。この問題について私にとって非常に驚くべきことは、release:prepareがフォークされたMavenライフサイクルで[clean、verify]を実行し、それが機能することですが、release:performは機能しません...それが問題なフォークです。
ビルドヘルパープラグインの構成は次のとおりです。
<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は非推奨であり、複数のフレックスソースツリーを持つユーザーにとっての前進はビルドヘルパーです。