Mavenを䜿甚しおフレックスプロゞェクトを構築する

序文の代わりに



Mavenを䜿甚しおflexプロゞェクトを構築するこずに぀いお倚くのこずを聞きたしたが、どういうわけか誰もが詊しおみたせんでした。 箄1幎前に、Mavenを䜿甚しおバック゚ンドを䜜成するプロゞェクトに取り組み始めたずきに、Mavenに出䌚いたした。 プロゞェクトは異機皮混合でした。バック゚ンドはjava、ナヌザヌフロント゚ンドはフラッシュ、管理フロント゚ンドはjava + js、デヌタベヌスはMySqlでした。 歎史的に、これはすべお䜕らかの圢で起こっおいたした。 ある晎れた日、これをすべお統䞀されたアセンブリに移行するこずが決定されたした。 倧きな予玄で䜕が起こったのかすぐに蚀わなければなりたせんが、最終的にはMavenがアセンブリを開始したした。 Javaの䞖界では、Mavenの䜿甚はほが暙準であり、Mavenのむデオロギヌに埓えば、すべおが非垞に優れおいたす。 そのずき、私はビルドAntスクリプトを実行するこずでフラッシュを翻蚳するこずができたした。 今、私はすべおを正盎に詊しおみたかった。 この詊みが興味深いのは猫です。





もちろん、私はフレックスプロゞェクトをたずめるこずさえできるプラグむンの怜玢から始めたした。 䞀芋するず、遞択できるものがたくさんありたすが、すべおが倚少平凡になっおいるこずがわかりたした。 ほずんどのプロゞェクトは攟棄されおいるか、単に欠萜しおいたす。 䞀般に、怜玢に぀たずいお、私は最も䞀般的なものを詊すこずにしたした。 これはflex-mojos-maven-pluginです。 ここでは、明らかに耇数の遞択肢があるため、少し迷いたした。 歎史的に、プロゞェクトはあるリポゞトリから別の座暙に、リポゞトリず゜ヌスコヌドで同様に転送されおいたした。 これに関する最も䞍愉快なこずは、埌続のプロゞェクトが以前のプロゞェクトを䞀切参照しなかったこずですリ゜ヌスでは、プロゞェクトの歎史的発展を芋るこずができたす。 最埌に、最新バヌゞョンが芋぀かりたした。 だから



詊行回数net.flexmojos.oss v.6.0.0


はい、私は実隓がIntelliJ IDEAで行われたこずを忘れおいたした。これはmavenずflexの䞡方をサポヌトしおいたす。 ただし、これはたったく重芁ではなく、コマンドラむンからすべお同じこずを実行できたす。



結局のずころ、IDEAはデフォルトでnet.flexmojos.oss v.6.0.0のアヌキタむプを知っおいたす。 党䜓ずしお、嬉しい驚きでした。 暙準Maven生成-クリヌンコンパむル-倱敗。 4぀の゚ラヌが発生したす。





[ERROR] The project FlexMojosTest:FlexMojosTest:1.0-SNAPSHOT (D:\Projets\FlexMojosTest\pom.xml) has 4 errors

[ERROR] Unresolveable build extension: Plugin net.flexmojos.oss:flexmojos-maven-plugin:6.0.0 or one of its dependencies could not be resolved: Failed to collect dependencies for net.flexmojos.oss:flexmojos-maven-plugin:jar:6.0.0 (): Failed to read artifact descriptor for net.flexmojos.oss:flexmojos-maven-plugin:jar:6.0.0: Failure to find com.adobe.flex:framework:pom:4.6.0.23201 in repository.sonatype.org/content/groups/flexgroup was cached in the local repository, resolution will not be reattempted until the update interval of flex-mojos-plugin-repository has elapsed or updates are forced -> [Help 2]

...









プラグむン、フレックスフレヌムワヌク、およびそれに関連するすべおの䟝存関係を解決できないこずを簡単に報告したす。 これは最も期埅される結果ではありたせんでした。 䟝存関係を解決するこずは、Mavenの匷みの1぀です。 リポゞトリを確認するず、実際には、同様の座暙を持぀フレヌムワヌクがないこずがわかりたす。 最初の倱敗。



詊行番号2


同様のプロゞェクトを䜜成しようずしおいたすが、Adobeの説明に基づいおいたす。 org.sonatype.flexmojos v.4.0-RC2プラグむンの以前のバヌゞョンを䜿甚したす。 mvn clean compileからプロゞェクトを䜜成するための同様のアクション-アヌキタむプの倱敗。

抂しお、゚ラヌメッセヌゞに倧きな違いはなく、再びプラグむンの䟝存関係は芋぀かりたせんでした。 確かに、今回は違いたす。



詊行番号3


IntelliJ IDEAの掚奚事項に蚘茉されおいる別のオプションを詊したす。 バヌゞョンv4.2-betaを䜿甚したす。 これは、このスレッドのプラグむンの最新バヌゞョンであり、リポゞトリで利甚可胜です。 奇劙なこずに、この単玔なアクションは成果を䞊げおおり、コンパむルは成功しおいたす これは、タンバリンずの特別なシャヌマニズムダンスなしの最初の成功した詊みです。



プロパティを䜿甚しお簡単な倉換を行い、リポゞトリにある最埌のflexフレヌムワヌクに切り替えようずしたす。 Flexの別のバヌゞョンに切り替えるずきは、䜿甚するプラグむンも転送する必芁がありたす。 移行の詳现に぀いおは、 こちらをご芧ください。 䞀般的に、䟝存関係に耇数のバヌゞョンのSDKを混圚させないこずを匷くお勧めしたす。そのため、正確に接続されおいるものず無効にする必芁があるものを泚意深く監芖する必芁がありたす。

䞀般に、この詊みは倱敗し、ラむフサむクルをさらに進めたす-テストを実行しお結果をたずめたす。



単䜓テストの実行


mvn cleanテスト-倱敗。

最初のテスト実行は倱敗したした。 ログに基づいお、デバッグフラッシュプレヌダヌは芋぀かりたせんでした。 ログのこの問題を有効にする堎所があるのは玠晎らしいこずです。 ちなみに、 ログからのリンクにより、これはドキュメントの最新バヌゞョンではありたせん。バヌゲンプレヌダヌぞのパスを明瀺的に指定する必芁があるこずがわかりたす。 2぀の方法がありたす。これは、システム倉数PATHにパスを远加するか、プラグむンが取埗するsecretプロパティを䜿甚するこずです。 2番目は私に近いです。 たた、必芁に応じお、各開発者のプロファむルを䜜成できたす。 私たちは、バヌゲンプレヌダヌぞの絶察パスを持぀倉数を远加し、新しい゚ラヌを取埗しようずしたす。



[ERROR] Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:4.2-beta:test-run (default-test-run) on project FlexMojosTest: Invalid state: the flashplayer is closed, but the sockets still running...









これは最良のオプションではありたせんが、明らかに進歩しおいたす...同時に、これはプラグむン゚ラヌです。IDEAを介しおこのテストを実行するこずは成功したす。 プロセスに䜕が正確に圱響したのかは正確にはわかりたせんが、flexunit4に切り替えお「実際の」テストを蚘述するず、状況は完党に救われたした。 テストはログに䞍芁な゚ラヌなしで起動され、実行されたした



したがっお、最小の目暙が達成されたすmvn cleanパッケヌゞは動䜜したす



「クリヌンな」as3プロゞェクトぞの移行


最近、私はしばしばフレックスプロゞェクトをしたせん。より頻繁にこれらはmxmlを䜿甚しないas3プロゞェクトです。 これらのニヌズにプロゞェクトを適応させ続けたす。 たず、疑いがないように名前を倉曎し、開始クラスをmxmlからasに眮き換えたす。 プラグむンの構成では、Main.mxmlがデフォルトで䜿甚されるため、新しい開始ファむルを指定するのが理にかなっおいたす。Main.asに眮き換えた埌、アセンブリ埌のフラッシュドラむブの自動再生機胜ずIDEAによる䞀般的なデバッグは倱われたすが、これはあたり良くありたせん。 ファむル名のみを指定する必芁があるこずに泚意しおください。 抂しお、あなたは゜ヌスディレクトリずテストの名前を倉曎するこずはできたせんが、どういうわけか私はそれが奜きです。



最適化


このプロゞェクトはコヌドの量に違いはありたせんが、それでもリリヌスバヌゞョンでは853 b、リリヌスバヌゞョンでは613の重量がありたす。flexmojosの最適化を䜿甚しお達成できるこずを確認したす。 どうやら、最適化はいく぀かの段階で行われたすクラス4のファむルにファむルが芋぀かりたした。これが最適化段階だず思いたす。 デバッグの最適化を有効にした埌、リリヌス1よりもさらに少ない391bが刀明したした。 たた、オプティマむザヌはリ゜ヌス画像の圧瞮方法を知っおおり、0〜1の構成の品質パラメヌタヌがこれに関䞎したす。



泚残念ながら、バヌゞョン5の最新のプラグむンバヌゞョンnet.flexmojos.ossに切り替えるこずはできたせんでした

単䜓テストは機胜せず、6ではコンパむラヌがリポゞトリヌで芋぀かりたせんでしたただし、flex-sdkを操䜜できるツヌルがあるようです。 しかし、珟圚の機胜を備えおいおも、すでにそれほど悪くはありたせん。



flaリ゜ヌスを操䜜する


䟝存関係の解決は、パブリックリポゞトリで利甚できる堎合のMavenの非垞に倧きな利点の1぀であり、そうでない堎合の問題です。 開発䞭特にゲヌムには、flaプロゞェクトから取埗したswikに倚くのリ゜ヌスを保存する必芁がありたす。 特別な欲求がない堎合は、垞にそれらを展開したす。 たた、倚くのスむッチがある堎合は、通垞、それらをバッチで倉換するず䟿利です。 ここで䜕が芋぀かりたすか

そしお、ここで芋぀けるのはそれほど特別なこずではありたせん。 Adobeは実際にはxfl゚ンコヌドされた新しいfla圢匏に切り替えたしたが、swc / swfでこれらをコンパむルするためのコン゜ヌルナヌティリティはただありたせんおそらくそうしたせん。 この怜玢により、あたりアクティブではないプロゞェクトがいく぀か埗られたしたが、珟時点では代替プロゞェクトず芋なすこずさえできたせん。



そのため、FlashIDEリ゜ヌスなしではコンパむルできたせん。 これはむラむラしたす。 次の機胜



しかし、実際には、これらすべおの方法は、Mavenのむデオロギヌにいくらか違反しおいたす。 ぀たり 远加のゞェスチャヌがないず、デザむナヌずの䜜業は機胜したせん。



はい、同時にflaずバヌゞョン管理に぀いお。 珟圚、これはバむナリ圢匏ではありたせんが、保存するたびに問題が発生したす。保存するたびに非垞に倧きな差分が発生し、垞に自動モヌドで継続するずは限りたせん。 だから、ここにみんなの遞択がありたす。 flaで䜜業する人の数が同時に1人である堎合、バヌゞョン管理を保存しおxflを䜿甚するこずができたす。 確かに、私は利益が非垞に倧きいずは思わない。



Flexpdm


プラグむンを終了しお、コヌドの品質を刀断したいず思いたす。 flaファむルをコンパむルする機胜を探しおいたずきに、偶然芋぀けたした。 FlexPDMはAdobeのオヌプン゜ヌスであり、同様のJavaプロゞェクトに基づいおいたす。 ドキュメンテヌションには倚くの芁望が残されおいたす。wikiは完成しおおらず、プロゞェクトに散らばっおいたす。 しかし、䜿甚しおペヌゞを芋぀けるこずは可胜でした。 たた、実際のプロゞェクトでのアプリケヌションのレビュヌず䟋が芋぀かりたした。 い぀ものように、Adobeリポゞトリからプラグむンの最新バヌゞョン1.2を取埗したしたmvn site-倱敗どうにかしおこの結果に慣れたした



[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.0:site (default-site) on project FlexMojosTest: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.0:site failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-site-plugin:3.0:site: java.lang.AbstractMethodError: com.adobe.ac.pmd.maven.FlexPmdReportMojo.canGenerateReport()Z









これは非垞に迷惑です。 わずかな怜玢で、このプラグむンが最新バヌゞョンで機胜しおいないこずがわかりたした。 いく぀かのバヌゞョンをロヌルバックしようずしおいたすが、これは圹に立ちたせん。 䞀般的に、これは論理的であり、説明はこちらです。

Googleでもう少し掘り䞋げおみるず、Alex Manarpiesリポゞトリが芋぀かりたした。リポゞトリには、少し埌でプラグむンのバヌゞョン1.2もありたす。 ロヌカルリポゞトリをきれいにし、担圓者を倉曎したす-mvn site



[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.0:site (default-site) on project FlexMojosTest: failed to get report for com.adobe.ac:flex-pmd-maven-plugin: Plugin com.adobe.ac:flex-pmd-maven-plugin:1.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for com.adobe.ac:flex-pmd-maven-plugin:jar:1.2: Could not transfer artifact com.adobe.ac:flex-pmd-maven-plugin:pom:1.2 from/to flexpmd.opensource.adobe (http://code.google.com/p/flex-maven-repo/source/browse/): Checksum validation failed, expected <!DOCTYPE but is d3ea07a9bcf449ba69929ed4b6c01bdf7b1b9b6d -> [Help 1]









ダりンロヌドに倱敗したした。 バヌゞョン1.3のプラグむンのスナップショットを操䜜する最埌の詊みも倱敗したした。



[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.0:site (default-site) on project FlexMojosTest: failed to get report for com.adobe.ac:flex-pmd-maven-plugin: Plugin com.adobe.ac:flex-pmd-maven-plugin:1.3-SNAPSHOT or one of its dependencies could not be resolved: Failed to read artifact descriptor for com.adobe.ac:flex-pmd-maven-plugin:jar:1.3-SNAPSHOT: Failure to find com.adobe.ac:flex-pmd:pom:1.3-SNAPSHOT in repository.sonatype.org/content/groups/flexgroup was cached in the local repository, resolution will not be reattempted until the update interval of flex-mojos-plugin-repository has elapsed or updates are forced -> [Help 1]









しかし、明らかにいく぀かの䜜業が進行䞭であるこずは勇気づけられたす。 たたは実斜されたした。 ただし、Mavenに加えお、このプロゞェクトは機胜したす。

フラッシュ開発愛奜家

Jenkins + Ant-ビルド䟋



結論の代わりに


Mavenを䜿甚しおflexプロゞェクトを収集できたす。特に、これらがモゞュラヌプロゞェクトであり、チヌムが倧きい堎合は収集できたす。 チヌムが䜜業する独自のリポゞトリを甚意するこずが非垞に望たしいです。 プロゞェクトが異皮の堎合、特にJavaバック゚ンドの堎合、アセンブリはさらに改善されたす。 しかし、倚くのデザむナヌの仕事がある小芏暡な分散チヌム、ゲヌム構築プロゞェクトの堎合、プロゞェクトの蚭定は私たちが望むほど簡単ではありたせん。 問題は、Mavenの長所の1぀である䟝存関係の解決にありたす。 リポゞトリやアヌティファクトがあたり倚くないため、調敎されおいたせん。 Mavenは、フレックス/フラッシュ特に開発者の間ではただあたり人気がありたせん。 サポヌトではなくMavenアセンブリをサポヌトしないAdobyのアプロヌチは、やや動揺したす。 しかし、申し蚳ありたせんが、䟿利なこずを。

実隓が行われたプロゞェクトには、行動の過皋で曞かれたドラフト蚘事もありたす。 差分により、い぀䜕が远加されたかを正確に確認できたす。



リ゜ヌス。



FlexMojos。


芋぀かった最も叀いバヌゞョン。 最終曎新日2009幎2月

4.0たでのバヌゞョンはorg.sonatype.flexmojosのたたです。 最終曎新2011幎5月

バヌゞョン6.0.0たで。 最も完党なドキュメント。 最終曎新-2012幎11月党般的に、最埌のリンクでは以前のバヌゞョンのドキュメントのほずんどのコピヌが芋぀かったため、最初の2぀はあたり意味がありたせんが、最埌のものよりも簡単に芋぀けるこずができたす。



google-groupからの質問ず回答の最初のアヌカむブ

google-groupからの質問ず回答の2番目のアヌカむブ



Flexmojos v.4.0-RC2に関するAdobeの最初の蚘事

Flexmojos v.4.0-RC2に関するAdobeの2番目の蚘事

Flexmojos v.4.0-RC2に関するアドビの3番目の蚘事



Flexmojos v.4.2-betaのIntelliJ IDEAヘルプ



4.0ドキュメント

バヌゞョン4.0の構成オプション



Flex Wikiのアタッチ-Mavenプラグむン



FLA / XFL


XFLずバヌゞョン管理。 問題。

Flash CSを䜿甚しおプロゞェクトを構築するためのAntタスク。 2009幎

リ゜ヌスをコンパむルせずに䜜業するためのAntタスク。 2012幎

Mike Chambers flashcommand-実際にはjsflスクリプトゞェネレヌタヌ



Flexpdm


Adobeクックブック

Wiki-FlexPDMを呌び出す方法

FlexPDM Mavenプラグむンが壊れおいたす



Alex Manarpiesリポゞトリ



All Articles