You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by "Torben S. Giesselmann" <ts...@foogoo.net> on 2009/02/12 18:10:35 UTC

Running Groovy scripts with project's compile classpath

Hi there,

I'm trying to post-process some classes of my project using a Groovy 
script. During the process-classes phase, I'm executing a Groovy script 
using gmaven-plugin (1.0-rc-4).

However, loading any class from the project's classes (regular Java 
classes) fails. This code fails with a ClassNotFoundException:

----[snip]----

Class clz = this.getClass().forName("net.foogoo.test.maven.SomeClass")
println clz.simpleName

----[snip]----

net.foogoo.test.maven.SomeClass is present as a Java file and compiles 
successfully.


Here is my POM:

----[snip]----

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>net.foogoo.maven.test</groupId>
	<artifactId>groovy-classpath</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<build>
		<plugins>
		
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
				</configuration>
			</plugin>
			
			<plugin>
				<groupId>org.codehaus.groovy.maven</groupId>
				<artifactId>gmaven-plugin</artifactId>
				<executions>
					<execution>
						<phase>process-classes</phase>
						<goals>
							<goal>execute</goal>
						</goals>
						<configuration>
							<scriptpath>
								<file>file://${pom.basedir}/target/classes</file>
							</scriptpath>
							<source>
								${pom.basedir}/src/build/groovy/ClassExplorer.groovy
							</source>
						</configuration>
					</execution>
				</executions>
			</plugin>
			
		</plugins>
	</build>
</project>

----[snip]----

As you can see, I already tried adding adding "target/classes" to 
scriptpath, but it makes no difference. I'm somewhat clueless. Any ideas 
how to execute my script with the project's compile classpath?

Many thanks in advance!

Best regards,
- Torben


-- 
Torben S. Giesselmann
tsg-swdev@foogoo.net

A clear conscience is usually the sign of a bad memory.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Running Groovy scripts with project's compile classpath

Posted by "Torben S. Giesselmann" <ts...@foogoo.net>.
Hi there -- has nobody *ever* tried this? :-/

Regards,
- Torben



Torben S. Giesselmann wrote:
> Hi there,
> 
> I'm trying to post-process some classes of my project using a Groovy 
> script. During the process-classes phase, I'm executing a Groovy script 
> using gmaven-plugin (1.0-rc-4).
> 
> However, loading any class from the project's classes (regular Java 
> classes) fails. This code fails with a ClassNotFoundException:
> 
> ----[snip]----
> 
> Class clz = this.getClass().forName("net.foogoo.test.maven.SomeClass")
> println clz.simpleName
> 
> ----[snip]----
> 
> net.foogoo.test.maven.SomeClass is present as a Java file and compiles 
> successfully.
> 
> 
> Here is my POM:
> 
> ----[snip]----
> 
> <project xmlns="http://maven.apache.org/POM/4.0.0"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd">
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>net.foogoo.maven.test</groupId>
>     <artifactId>groovy-classpath</artifactId>
>     <version>0.0.1-SNAPSHOT</version>
> 
>     <build>
>         <plugins>
>        
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-compiler-plugin</artifactId>
>                 <configuration>
>                     <source>1.5</source>
>                     <target>1.5</target>
>                 </configuration>
>             </plugin>
>            
>             <plugin>
>                 <groupId>org.codehaus.groovy.maven</groupId>
>                 <artifactId>gmaven-plugin</artifactId>
>                 <executions>
>                     <execution>
>                         <phase>process-classes</phase>
>                         <goals>
>                             <goal>execute</goal>
>                         </goals>
>                         <configuration>
>                             <scriptpath>
>                                 
> <file>file://${pom.basedir}/target/classes</file>
>                             </scriptpath>
>                             <source>
>                                 
> ${pom.basedir}/src/build/groovy/ClassExplorer.groovy
>                             </source>
>                         </configuration>
>                     </execution>
>                 </executions>
>             </plugin>
>            
>         </plugins>
>     </build>
> </project>
> 
> ----[snip]----
> 
> As you can see, I already tried adding adding "target/classes" to 
> scriptpath, but it makes no difference. I'm somewhat clueless. Any ideas 
> how to execute my script with the project's compile classpath?
> 
> Many thanks in advance!
> 
> Best regards,
> - Torben
> 
> 


-- 
Torben S. Giesselmann
tsg-swdev@foogoo.net

A clear conscience is usually the sign of a bad memory.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org