私はそれらを実行しているコンピュータに応じて異なる可能性のあるファイル/実行可能ファイルの場所をいくつか持っています。これらを何とかantのプロパティで抽象化したいと思います。これを行う最善の方法は何ですか?呼び出されるシステム全体のAntセットアップスクリプトはありますか?または、そのようなスクリプトを作成できますか?ant:システム依存のプロパティを設定する最善の方法は?
答えて
カスタマイズするプロパティを定義する必要があるproperties.xmlというAntビルドファイルをセットアップします。ここで
は、私は私のプロジェクトのために使用していますproperties.xmlの定型(私はAntの上の本の一つからそれを適応してきた)である:ここ
<?xml version="1.0" encoding="UTF-8"?>
<project
name="workspace-properties"
>
<dirname
property="workspace-properties.basedir"
file="${ant.file.workspace-properties}"
/>
<!--
==========================================================
Load Environment Variables
==========================================================
-->
<!-- #Load environment variables -->
<property environment="env" />
<!-- this is here to deal with the fact that an IntelliJ IDEA build
has no ant home
-->
<property
name="ant.home"
value="${env.ANT_HOME}"
/>
<!-- get Unix hostname, and set to Windows comparable name -->
<!-- #Trick to get host name x-platform -->
<property
name="env.COMPUTERNAME"
value="${env.HOSTNAME}"
/>
<!--
==========================================================
Load property files
Note: the ordering is VERY important.
==========================================================
-->
<!-- #Allow even users property file to relocate -->
<property
name="user.properties.file"
location="${user.home}/.build.properties"
/>
<!-- Load the application specific settings -->
<!-- #Project specific props -->
<property file="build.properties" />
<!--
==========================================================
Define your custom properties here.
You can overwrite them through build.properties and
${user.home}/.build.properties
==========================================================
-->
<property name="myexec1" location="/usr/bin/myexec1"/>
<property name="myexec2" location="/usr/bin/myexec2"/>
</project>
重要なことは、として多くの有用なデフォルトを思い付くことです可能な限りプロパティ値を入力すると、カスタムbuild.properties
ファイルが決して生成されないことがあります。
このファイルは、プロジェクトのbuild.xmlにある<import>
という名前だけです。
<project
name="my-project"
>
<!-- this is done, so you may import my-project somewhere else -->
<dirname
property="my-project.basedir"
file="${ant.file.my-project}"
/>
<import file="${my-project.basedir}/relative/path/to/properties.xml"/>
<target name="using.myexec1">
<echo message="myexec1=${myexec1}"/>
</target>
</project>
あなたはmy-project
にmyexec1のカスタム値をしたい場合は、単にのbuild.xmlが置かれている同じディレクトリにあるカスタムフラットbuild.propertiesファイルをドロップします。
build.propertiesファイルは次のようになります。
myexec1=c:/custom/path/to/myexec1.exe
私は、多かれ少なかれ標準build.properties
とbuild-local.properties
ファイルを使用します。
最初の値にはすべての環境に共通するデフォルト値が含まれ、2番目の例外には例外が含まれます。最初のものは転覆にチェックされ、もう一方は転覆にチェックされます。
EDIT:コピー/貼り付けAKRの優れたアイデア
また、デフォルトのプロパティを使用すると、上のビルドシステムを導入する可能性があるOSや他のそれぞれのファイルを持っているかもしれません。これらのファイルは、バージョン管理システムにもチェックインすることができます。
Antスクリプトは、すべてのファイルが含まれますフォロー(覚えている:Antの中で最初の定義勝):あなたは、デフォルトのプロパティを持っているかもしれませんウラジミールのソリューションに加えて
<property file="build-local.properties"/>
<property file="build.properties"/>
<property file="build-${os.name}.properties">
なぜビルドローカルなのでしょうか?最初? –
@ KalpeshSoniこれにより、ローカルファイルのすべてのプロパティをオーバーライドすることができます(ロードされる最初のもの)。私が間違っていると思うのは、デフォルトファイルを上書きする必要があるため、OS依存ファイルです。 – PhoneixS
は、OSごとにファイルビルドシステムを展開するかもしれません。パスを設定するには、$ {os.name}(およびその他のJavaシステムのプロパティ)を使用します。たとえば、
<property file="build-${os.name}.properties">
これらのファイルは、バージョン管理システムでも維持管理することができます。
+1良いアイデア。私は、 'file:///'と 'file://'を別々のシステムで使うことに問題があり、あなたの命題はこのケースをうまく処理するでしょう。 – Vladimir
- 1. WP7アプリケーションに設定値を保存する最善の方法
- 2. 依存プロジェクトのバージョンを確認する最善の方法
- 3. PHP/JSで依存フォームフィールドを開発する最善の方法
- 4. 設定データをXamarin.Formsベースのアプリケーションに保存する最善の方法は?
- 5. requirements.txtのシステム依存にtensorflow依存関係を指定する方法
- 6. Solrをセットアップする最善の方法(Ant vs Maven)?
- 7. WinRTカスタムコントロール依存プロパティの設定/バインド
- 8. 複数のantビルドファイル間の依存関係を定義する最良の方法は何ですか?
- 9. テスト中にJavaシステムのプロパティを設定する方法
- 10. 依存関係プロパティの順序を設定する方法コールバック変更メソッド?
- 11. Cobol/CICSシステムから現代のOracle/C++/Serverの設定に至る最善の方法はありますか
- 12. iphone設定画面を構築する最善の方法
- 13. Linuxシステム - システム依存関係ループを解決する方法
- 14. ライブラリプロジェクトの依存関係注入を設定する方法は?
- 15. Gradle:プロジェクトの依存関係のプロパティを設定する
- 16. 依存プロパティが設定されない
- 17. 設定/設定によるエラーを避ける最善の方法BEFOREランタイム
- 18. CSSプロパティを設定する最速の方法は?
- 19. 既存のプロジェクトのIvy管理依存関係を改善する最も良い方法は何ですか
- 20. 依存性注入を改善する方法は?
- 21. Delphiアプリケーションの設定をシリアル化する最善の方法は何ですか?
- 22. 添付された依存関係プロパティから値をプロパティに設定する方法はありますか?
- 23. Erlangでは、分散システムをアップグレードする最善の方法は何ですか?
- 24. Rxjs、プロパティを設定するために待機して通知するのが最善の方法ですか?
- 25. MatLab:他のプロパティに依存する(定数ではない)プロパティを定義する方法は?
- 26. Gradleで依存関係のグループのプロパティを指定する方法は?
- 27. 他のフレーバーにフレーバー依存関係を設定する方法
- 28. WinRTアプリケーションの設定を保存する最良の方法は?
- 29. Javaアプリケーションを設定する最善の方法は何ですか?
- 30. セッションにユーザー情報を保存する最善の方法は?