Ok, what I was suggesting should still work out for you.  What I was
suggesting was to put your script file into src/main/resources and configure
filtering like so:
              <resources>
                <resource>
                  <directory>src/main/resources</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>

Then in the plugin, simply refer to the filtered version of the script file:

              
<installScriptlet>${project.build.directory}/classes/yourScriptFile.sh</installScriptlet>

Of course you could use a different output directory for the resources
config so that the path to installScriptlet need not point to the target
dir.

HTH.
-Ryan


On Wed, Dec 16, 2009 at 8:09 AM, Gajo Csaba <csaba.g...@cosylab.com> wrote:

> Well on initial testing it doesn't seem to work. Maybe the rpm plugin is
> supposed to load the file through some maven resource interface? Right now,
> it's doing this:
>
> final Reader reader = new FileReader( scriptFile );
>
> Where scriptFile is a java.io.File. I think this way, it's bypassing
> Maven's framework. This could be yet another bug...
>
> Thanks for the help, Csaba
>
>
>
> Ryan Connolly wrote:
>
>> Hi. I have no experience with this plugin but it would seem that you
>> could first filter the file as a typical maven resource and then have
>> the plugin point to the filtered version?
>>
>>
>>
>> On 12/16/09, Gajo Csaba <csaba.g...@cosylab.com> wrote:
>>
>>
>>> Hello,
>>>
>>> We're using the rpm plugin for packaging, and we have a problem with its
>>> install script. There are two ways to include a script. One is the
>>> (deprecated) <install> tag. In this case, we would put the bash script
>>> into the pom.xml, which is rather ugly, but it works. The bash script
>>> itself contains Maven variables, and these are replaced by maven before
>>> the script is used by the rpm plugin.
>>> The other way is to user the <installScriptlet> tag. This tag required
>>> the name of an external file, which contains the contents of the bash
>>> script. This is a much cleaner approach. However, the problem is the
>>> maven variables are not replaced in the external file, so the script
>>> doesn't work.
>>>
>>> I've looked at the source code of the rpm plugin, and it seems that it
>>> simply opens the external script file, and prints it line-by-line into
>>> the generated spec file, with no modification to the line.
>>>
>>> I think it would be a good idea to modify the rpm plugin code at this
>>> point, so that the line is first processed, expanding all maven
>>> variables.
>>>
>>> How can I do this? How is maven expanding its variables? Is there a
>>> method somewhere like MavenEnv.expandVariables(str) ?
>>>
>>> Thanks, Csaba
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>


-- 
�...@n

Reply via email to