2010-12-27 8 views
3

IzPackにテキストファイルの変数を置き換える方法を理解しようとしています。それは簡単なことであるはずですが、既存のドキュメントでこれを行う具体的な例は見つけられません。テキストファイルの変数を置き換えるIzPack

アイデア?

ありがとうございます。

+0

関連:[のIzPack「マーキングファイルを変数置換 "](https://izpack.atlassian.net/wiki/display/IZPACK/Marking+files+for+variable+r置き換え)。 –

答えて

2

01es' answerをビルドします。これは、ユーザーにUserInputPanelを使用してアプリケーションのデータのパスを選択させ、そのパスをアプリケーションのインストールディレクトリ内の設定ファイルに書き込む例です。

変数を含む​​3210あなたが代わりに使用する例:

<?xml version="1.0" encoding="UTF-8"?> 
<Entries> 
    <Entry> 
    <Key>appDataDir</Key> 
    <!-- IzPack will substitute this --> 
    <Value>$appDataDir</Value> 
    </Entry> 
</Entries> 

userInputSpec.xml:

<userInput> 
    <panel id="panel1"> 
    <field type="dir" variable="appDataDir"> 
    <spec size="20" set="$USER_HOME\AppData\Roaming\$APP_NAME" mustExist="false" create ="true"/> 
    <os family="windows"/> 
    </field> 
    </panel> 
</userInput> 

installer.xml:

<?xml version="1.0" encoding="UTF-8"?><installation version="1.0"> 
    <info> 
    <appname>Your app</appname> 
    <appversion>0.0.1</appversion> 
    <!-- Try to run as the administrator on Windows to be able to install under "C:\Program Files" --> 
    <run-privileged condition="izpack.windowsinstall" /> 
    </info> 

    <locale> 
    <langpack iso3="eng" /> 
    </locale> 

    <resources> 
    <res id="userInputSpec.xml" src="userInputSpec.xml" parse="yes" type="xml" /> 
    </resources> 

    <panels> 
    <panel classname="UserInputPanel" id="panel1" /> 
    <panel classname="InstallPanel" /> 
    <panel classname="FinishPanel" /> 
    </panels> 

    <packs> 
    <pack name="Core" id="core.package" required="yes"> 
     <description>The base files that need to be part of the app</description> 

     <!-- The runnable application should be in this directory --> 
     <fileset dir="YourAppDir" targetdir="$INSTALL_PATH/YourAppDir"> 
     <include name="**" /> 
     </fileset> 

     <!-- This file contains placeholder variables starting with $ that Izpack substitutes with values that the user enters during installation in the UserInputPanel --> 
     <parsable targetfile="$INSTALL_PATH/YourAppDir/config.xml" /> 

    </pack> 
    </packs> 
</installation> 
5

ファイルまたはファイルセットタグを使用して、処理されるファイルがパックの1つに追加されたとします。そのファイルが処理されるためには、インストールプロセスの最後に行われるため、ファイルの解析可能タグを同じパックに追加する必要があります。たとえば、

<packs> 
    <pack name="Base" required="yes"> 
     <description>Application and all its dependencies.</description> 
     <fileset dir="dependencies" targetdir="$INSTALL_PATH/dependencies" /> 
     <file src="Licence.txt" targetdir="$INSTALL_PATH" /> 
     <file src="application.properties" targetdir="$INSTALL_PATH/dependencies" /> 
     <file src="run.bat" targetdir="$INSTALL_PATH" os="windows" /> 
     <file src="run.sh" targetdir="$INSTALL_PATH" os="unix" /> 
     <parsable targetfile="$INSTALL_PATH/run.bat" os="windows" /> 
     <parsable targetfile="$INSTALL_PATH/run.sh" os="unix" /> 
     <parsable targetfile="$INSTALL_PATH/dependencies/application.properties" /> 
    </pack> 
</packs> 

上記の例では、3つの構文解析可能なタグがあります(2つはOSに依存し、1つはOSに依存しません)。ターゲットファイルは、それぞれのファイルタグで指定された対応するターゲットディレクトリに最初にコピーされ、ファイル内の変数名をその値で置き換えて処理されます。

関連する問題