如何通过带有antrun插件的maven将类作为jar文件运行

时间:2013-06-27 12:40:53

标签: java class maven ant classpath

我在maven pom.xml中有以下插件配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
        <id>prepare-database</id>
        <phase>pre-integration-test</phase>
        <configuration>
            <target name="run">
                <java fork="false"  failonerror="yes" classname="Test">
                    <arg line="arg1 arg2"/>
                </java>
            </target>
        </configuration>
        <goals>
            <goal>run</goal>
        </goals>
        </execution>
    </executions>
</plugin>

该类位于src / main / java下的包中,该包名为com.a.b,类文件名为Test.java

package com.a.b;

public class Test {
    public static void main(String[] args)
      {
        String arg1 = args[0];
        String arg2 = args[1];
        doStuff(arg1, arg2);
      }

    public static void doStuff(String arg1, String arg2)
      {
          System.out.println(arg1);
      }
}

当尝试执行运行ant任务的maven构建时,我收到以下错误:

  

发生了Ant BuildException:无法找到Test。确保你   把它放在你的类路径中

据我所知,该文件无法找到,但我不知道该怎么做。任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

查看Maven网站上的standard-directory-layout文章。

源文件夹应该是src / main / java(而不是src / java / main)

另外,你对这个蚂蚁目标究竟想做什么?你只需要叉子吗?为什么不能将它作为纯单元测试或maven集成测试运行而忘记ANT目标呢?

H2非常适合在内存中运行。只需几行就可以连接到数据库并开始测试,所有这些都在JVM中,所有这些都使用标准的jUnit代码。

 Class.forName("org.h2.Driver"); 
 Connection con = DriverManager.getConnection("jdbc:h2:mem:mytest", "sa", ""); 
 Statement sst = con.createStatement(); 
 sst.executeUpdate(SQL);