Re: Custom plugin - resolve variables loaded from a file
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: src/main/resources true Then in the plugin, simply refer to the filtered version of the script file: ${project.build.directory}/classes/yourScriptFile.sh 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 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 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) 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 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
Re: Custom plugin - resolve variables loaded from a file
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 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) 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 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
Re: Custom plugin - resolve variables loaded from a file
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 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) 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 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 > > -- Sent from my mobile device �...@n - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org