Hello,
I try to run the main method during my maven build process. Therefore, I added the exec-maven plugin and the following snippet to my pom.xml
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1.1</version> <executions> <execution> <id>compile-reports</id> <phase>compile</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>at.xyz.dls.util.JasperReportCompiler</mainClass> </configuration> </execution> </executions> </plugin>
The main class exists and also executes when I call it from the command line:
mvn exec:java -Dexec.mainClass="at.xyz.dls.util.JasperReportCompiler"
I also tried creating an empty new project to check if another problem in pom was causing the problem but was unsuccessful. In maven settings.xml in the ~ / .m2 folder there is only an entry for the mirror, but not profiles or anything else that might cause the problem.
He just does not start it. When I deleted all my artifacts in my repo in org.codehouse, it did not load the exec-maven plugin. Only when I made a command line call.
Any clues? Thanks in advance!
edit: I forgot to mention that I used "mvn clean install". so he had to go through the compilation phase ...
edit:
So far, I have not been able to solve the problem. Thank you for your responses! I will try to give all the information again, and I hope that one of you guys will find the fish part. I donβt know anymore.
What I've done:
- Delete the org / codehouse / mojo folder in my maven proxy. just to show when dependencies load.
- show java and maven version information
- run the project with: mvn -clean install (which must go through the testing phase to complete my main method)
- execute the main method for showing, the exec-maven plugin only loads later and works
As I understand it, the call to "mvn clean install" should go through the testing phase (tests are running ...), so exec-maven-plugin should be called, which should execute the main method. I'm right?
D:\Eclipse-3.6.1-JSF\ws\exec-test>java -version java version "1.6.0_21" Java(TM) SE Runtime Environment (build 1.6.0_21-b07) Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing) D:\Eclipse-3.6.1-JSF\ws\exec-test>mvn -version Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200) Java version: 1.6.0_21 Java home: C:\Programme\Java\jdk1.6.0_21\jre Default locale: de_AT, platform encoding: Cp1252 OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows" D:\Eclipse-3.6.1-JSF\ws\exec-test>mvn clean install [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building Unnamed - at.test:exec-test:jar:0.0.1-SNAPSHOT [INFO] task-segment: [clean, install] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting directory D:\Eclipse-3.6.1-JSF\ws\exec-test\target [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 0 resource [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 1 source file to D:\Eclipse-3.6.1-JSF\ws\exec-test\target\classes [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 0 resource [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compiling 1 source file to D:\Eclipse-3.6.1-JSF\ws\exec-test\target\test-classes [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: D:\Eclipse-3.6.1-JSF\ws\exec-test\target\surefire-reports TESTS Running at.test.ExecTestTest JUnit Test call: end of junit test. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: D:\Eclipse-3.6.1-JSF\ws\exec-test\target\exec-test.jar [INFO] [install:install {execution: default-install}] [INFO] Installing D:\Eclipse-3.6.1-JSF\ws\exec-test\target\exec-test.jar to D:\maven.m2\repository\at\test\exec-test\0.0.1-SNAPSHOT\exec-test-0.0.1-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 seconds [INFO] Finished at: Thu Mar 10 12:07:08 CET 2011 [INFO] Final Memory: 15M/37M [INFO] ------------------------------------------------------------------------ D:\Eclipse-3.6.1-JSF\ws\exec-test>mvn exec:java -Dexec.mainClass="at.test.ExecTest" [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'exec'. Downloading: http://pced06.vab.sozvers.at:8080/artifactory/repo/org/codehaus/mojo/exec-maven-plugin/1.2/exec-maven-plugin-1.2.pom 6K downloaded (exec-maven-plugin-1.2.pom) Downloading: http://pced06.vab.sozvers.at:8080/artifactory/repo/org/codehaus/mojo/exec-maven-plugin/1.2/exec-maven-plugin-1.2.jar 35K downloaded (exec-maven-plugin-1.2.jar) [INFO] ------------------------------------------------------------------------ [INFO] Building Unnamed - at.test:exec-test:jar:0.0.1-SNAPSHOT [INFO] task-segment: [exec:java] [INFO] ------------------------------------------------------------------------ [INFO] Preparing exec:java [WARNING] Removing: java from forked lifecycle, to prevent recursive invocation. [INFO] No goals needed for project - skipping [INFO] [exec:java {execution: default-cli}] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7 seconds [INFO] Finished at: Thu Mar 10 12:07:20 CET 2011 [INFO] Final Memory: 5M/15M [INFO] ------------------------------------------------------------------------ D:\Eclipse-3.6.1-JSF\ws\exec-test>
now changed pom.xml again:
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>at.test</groupId> <artifactId>exec-test</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <finalName>exec-test</finalName> <defaultGoal>install</defaultGoal> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2</version> <executions> <execution> <id>compile-reports</id> <phase>test</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>at.test.ExecTest</mainClass> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> </dependency> </dependencies>
Main class:
package at.test; public class ExecTest { public static void main(String[] args) { System.out.println("##################################"); } }
And the JUnit testing class:
package at.test; import org.junit.Test; import at.test.ExecTest; public class ExecTestTest { @Test public void testTestTest() { System.err.println("JUnit Test call:"); ExecTest.main(null); System.err.println("end of junit test."); } }