我的 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 构建时,出现以下错误:
An Ant BuildException has occured: Could not find Test. Make sure you have it in your classpath
我知道找不到该文件,但我不知道该怎么办。任何帮助将不胜感激。
最佳答案
看看standard-directory-layout Maven 站点上的文章。
源文件夹应该是 src/main/java (而不是 src/java/main)
另外,您到底想用这个 ant 目标做什么?您只需要 fork 吗?为什么不能将它作为纯单元测试或 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);
关于java - 如何使用 antrun 插件通过 maven 将类作为 jar 文件运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17343474/