如何配置exec-maven-plugin类路径

时间:2016-08-18 05:32:02

标签: java maven build continuous-integration exec-maven-plugin

我想用pom.xml执行位于同一文件夹中的类文件(或jar文件),其中包含main方法。

这是我的pom.xml

http://maven.apache.org/maven-v4_0_0.xsd">     4.0.0     图奥马斯     睡觉     POM     1.0-SNAPSHOT

<build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.5.0</version>
        <executions>
          <execution>
            <id>sleep</id>
            <phase>verify</phase>
            <goals>
              <goal>java</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <mainClass>tuomas.App</mainClass>
          <classpathScope>tuomas</classpathScope>
        </configuration>
      </plugin>
    </plugins>
  </build>

我收到以下错误:

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (sleep) on project sleep: Execution sleep of goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java failed: Invalid classpath scope: tuomas -> [Help 1]

这是我的文件夹结构

的pom.xml 。 ..tuomas..App.class

我也尝试过不在插件配置中指定classpathScope属性,而是收到了以下错误。

[WARNING]
java.lang.ClassNotFoundException: tuomas.App
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:281)
        at java.lang.Thread.run(Thread.java:745)

无论类文件是在tuomas文件夹下还是在项目根目录下。还尝试将jar安装到本地maven存储库但没有成功。

如何配置此插件以从项目文件夹中查找类?

1 个答案:

答案 0 :(得分:1)

首先,摆脱<classpathScope>参数。 Maven中没有名为toumas的范围,只有these。默认值为runtime,适用于大多数人。

如果您的main方法位于包toumas和文件App.java中,则该方法应该有效。

您的陈述:

  

&#34;我也尝试过不在插件配置中指定classpathScope属性,而是收到了以下错误。&#34;

让我想知道你的Java文件是否真的在src/main/java下?