【问题标题】:How to run a class as a jar file trough maven with antrun plugin如何使用 antrun 插件通过 maven 将类作为 jar 文件运行
【发布时间】:2013-06-27 12:40:53
【问题描述】:

我的 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 的名称是否会导致该类被排除在外……或许可以试试class Foo?
  • Test 似乎是一个有效的 java 类名。这可能不是问题。

标签: java class maven ant classpath


【解决方案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); 

【讨论】:

  • 糟糕!问题中的错误路径。就像您所说的 src/main/java 一样,我的项目中的那个是正确的。我仍然看到错误。
  • 如果您执行 mvn 全新安装,您在 \target\classes\com\a\b 中看到 Test.class 吗?
  • 不,我没有我的所有其他课程都在他们应该在的地方。
  • 您可以将整个目录布局添加到问题中吗?
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 2011-04-16
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多