有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过maven和antrun插件以jar文件的形式运行类

我的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。爪哇

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构建时,我遇到以下错误:

An Ant BuildException has occured: Could not find Test. Make sure you have it in your classpath

我知道文件找不到,但我不知道该怎么办。任何帮助都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    看看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);