File Reosurce Template problems and Absolute paths

View: New views
2 Messages — Rating Filter:   Alert me  

File Reosurce Template problems and Absolute paths

by Chris Graham :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi All.

I am attempting to write a Maven plugin that is executed as part of a build against other projects.

I am attempting to use Velocity to execute templates that are contained in the *other* project, not the one that I am writing that contains the Velocity code.


        <build>
                <plugins>
                        <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>properties-maven-plugin</artifactId>
                                <version>1.0-alpha-3-SNAPSHOT</version>
                                <executions>
                                        <execution>
                                                <phase>generate-resources</phase>
                                                <goals>
                                                        <goal>update-properties</goal>
                                                </goals>
                                                <configuration>
                                                        <files>
                                                                <file>src/main/resources/application.properties</file>
                                                        </files>
                                                </configuration>
                                        </execution>
                                </executions>
                        </plugin>
                </plugins>
        </build>

So my plugin receives a list of File objects, of the files in the other project. These files are the template files that need to be processed.

I am using the FileResourceLoader, but I can not get it to correctly process the templates. Well, not without some awful fudges.

Can anyone suggest a reasonable way to process resources that are not local to the plugin in question?

Or at least suggest a way to work with absolute paths? (that obviously need to work on Windows and Unix).

Ta.

-Chris

Re: File Reosurce Template problems and Absolute paths

by Chris Graham :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

It would appear that setting the property "file.resource.loader.path" to an empty string did the trick, namely:

props.setProperty("file.resource.loader.path", "");

Interestingly, simply NOT setting the value to start with, did not work.

So, now I can do this:

Velocity.mergeTemplate(file.getCanonicalPath(), "UTF-8", context, writer);

Where "file" is a java.io.File object that is passed in from Maven.

-Chris

Chris Graham wrote:
Hi All.

I am attempting to write a Maven plugin that is executed as part of a build against other projects.

I am attempting to use Velocity to execute templates that are contained in the *other* project, not the one that I am writing that contains the Velocity code.


        <build>
                <plugins>
                        <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>properties-maven-plugin</artifactId>
                                <version>1.0-alpha-3-SNAPSHOT</version>
                                <executions>
                                        <execution>
                                                <phase>generate-resources</phase>
                                                <goals>
                                                        <goal>update-properties</goal>
                                                </goals>
                                                <configuration>
                                                        <files>
                                                                <file>src/main/resources/application.properties</file>
                                                        </files>
                                                </configuration>
                                        </execution>
                                </executions>
                        </plugin>
                </plugins>
        </build>

So my plugin receives a list of File objects, of the files in the other project. These files are the template files that need to be processed.

I am using the FileResourceLoader, but I can not get it to correctly process the templates. Well, not without some awful fudges.

Can anyone suggest a reasonable way to process resources that are not local to the plugin in question?

Or at least suggest a way to work with absolute paths? (that obviously need to work on Windows and Unix).

Ta.

-Chris