2016-10-31 17 views
0

元々Maven RPMプラグインを使用するためにspecファイルで行われたRPMをいくつか更新しています。元の設定はむしろ複雑ですが、他の4つのプロジェクトで使用される「共通の」プロジェクトも含まれています。スペックファイルは、共通のプロジェクトと、パラメータを使用して特定のものを指定するシェルスクリプト(フォルダ名を作成するときにプロジェクトAとプロジェクトBを区別する)を使用していました。シェルスクリプトに渡されたパラメータを処理するプロファイルを作成したい。これらのスクリプトは、私がやる必要がなければ再加工したくないものをたくさん扱います。プロファイルに設定した値をシェルスクリプトのパラメータとして使用する方法はありますか?シェルスクリプト(最小限変更されたもの)をpostInstallScriptletとして使用することを条件にします。RPMプラグインを使用してpostinstallScriptletのパラメータとしてMavenプロファイルの変数を使用できますか?

これはLinux(Centos 6)上のすべてです。

ので、プロファイルは次のようになります。

<profile> 
    <id>beta</id> 
    <properties> 
     <ENVIRONMENT>Beta</ENVIRONMENT> 
     <INSTALL_DIR>/var/ProjA</INSTALL_DIR> 
    </properties> 
</profile> 

スクリプトファイルをこのようなものだろう:

ENVIRONMENT=$1 
INSTALL_DIR=$2 

をどのように私はこれら二つの物事が一緒に仕事を得ることができますか?

答えて

0

これ以上の狩猟と実験の後、私はこれを解決できました。より高いレベルでこれを行う方法を記述する2つの質問があります。リンクの下に、これを役に立つ例にしたいと考えて、私が行ったことを示します。

does-an-external-script-in-rpm-maven-plugin-have-access-to-maven-properties

using-maven-rpm-plugin-how-do-i-to-replace-text-in-files-similar-to-the-assembly

プラグインのセクションは次のとおりです。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>3.0.1</version> 
    <executions> 
     <execution> 
     <id>copy-resources</id> 
     <phase>validate</phase> 
     <goals> 
      <goal>copy-resources</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${basedir}/bin</outputDirectory> 
      <resources> 
       <resource> 
        <!-- note that this will process all files in this directory -->     
        <directory>trunk/rpm_scripts/resources</directory> 
        <filtering>true</filtering> 
       </resources> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 

次に、プロファイルに:

<profile> 
    <id>beta</id> 
    <properties> 
     <VERSION>5.0.0</VERSION> 
     <MODULE>Project A</MODULE> 
     <!-- and more --> 
    </properties> 
</profile> 

そしてpostinstallScriptletファイルに:

VERSION=${VERSION} 
MODULE=${MODULE} 

この結果、ファイルは$ {basedir}/binディレクトリにコピーされ、すべての変数の置換が行われます。これは私が必要としていたものなので、これが他の人に役立つことを願っています。

関連する問題