2016-06-23 6 views
0

職場では、事実上同じAntスクリプトを頻繁に作成する必要があります。基本的に私たちがクライアントに提供するアプリケーションは、容易に拡張できるように設計されており、カスタムモジュールの設計と作成サービスを提供しています。私は、アプリケーションの複雑さのために多くの相互依存関係があるため、私たちのコア開発環境内でモジュールを開発し、IntelliJを使用してコンパイルし、次のタスクを実行する基本的なantスクリプトを実行します。Ant:動的なantスクリプトを作成できますか?

1)ビルドディレクトリをクリーンアップ

2)パッケージパスに基づいてビルドディレクトリとディレクトリ階層を作成します。

3)クラスファイル(およびソースファイルを別のソースディレクトリにコピー)。

4)Jar up。

これを行うには、スクリプトを1行ずつ実行してプロパティ名を変更する必要があります。新しいユースケースでは機能します。私はまた、私がそれらに戻って行く必要がある場合のためにすべてのスクリプトを保存します。

これは世界で最悪のことではありませんが、私は常により良いやり方を模索しています。したがって、私の考え:

具体的な実装ごとに、私はちょうどプロパティのantスクリプト(または他のファイル)を提供します。キーと値のペア。これは、使用されているキーに基づいて各キーに固有のプレフィックスを持ちます。次に、私のantスクリプトがさまざまなタスクを実行し、それぞれが適切なキーと値のペアに対して実行されるようにします。

たとえば、クラスファイルをコピーします。私は "classFile.filePath"のような名前のプロパティを持っています。私はスクリプトが "classFile ..."で始まるすべてのプロパティのタスクを呼び出すようにしたいと思います。

正直なところ、これまでの私の現在の研究から、私はこれが可能であるとは確信していません。しかし、...私は頑固なスーパーです、常に新しい創造的なオプションを探しています。だから、どのようなオプションがありますか?それとも誰もいないのですか?

答えて

2

これは、動的に、これはXML入力ファイルを使用して行い、次の例のために、ANTスクリプトを生成することが可能です:

は個人的に私はいつも試してみて、このレベルの複雑さを避けるだろう。 Antはプログラミング言語ではありません。

達成しようとしていることを確認すると、依存関係をjarとしてパッケージ化し、NexusやArtifactoryのようなMavenリポジトリマネージャを使ってストレージを利用することができます。これにより、各サブプロジェクトの構築が簡単になります。これらの公開ライブラリに依存するプロジェクトをビルドするときは、Apache ivyのような依存関係管理ツールを使用してダウンロードできます。

あなたの質問に役立つ希望はかなり広いです。

+0

広い意味での謝罪は、私が仕事の真ん中にあったアイデアだった。 XSLTを使用した回答をリンクするためのボーナスポイントです。これは私が実際によく知っているものです。 – user2223059

関連する問題