【问题标题】:Maven Install but will not executeMaven 安装但不会执行
【发布时间】:2013-07-31 21:19:15
【问题描述】:

在我的 pom.xml 文件中,我有:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>
    <version>1.1.0</version>
</dependency>

现在,在我的源代码中,我有一行:

import org.apache.hadoop.util.ProgramDriver;

当我运行 mvn install 时,所有代码都能完美编译。但是,当我运行 mvn exec:java 时,我得到一个 class not found 错误 -- org.apache.hadoop.util.ProgramDriver 找不到。

为什么我可以安装代码却不能运行它?谢谢。

我正在使用 org.codehaus.mojo 执行插件。

配置无效:

<mainClass>myMainClass</mainClass>
<executableDependency>
     <groupId>org.apache.hadoop</groupId>
     <artifactId>hadoop-core</artifactId>
</executableDependency>

【问题讨论】:

  • exec 插件的配置是什么样的?根据文档,封闭项目的依赖项应该在类路径上。
  • 我只有我的主类的名称 myMainClass 也许你可以发布它应该是什么样子的答案?或者链接我?谢谢。
  • 尝试从命令行运行它。 java -cp hadoop-core-1.1.0.jar Main 看看会发生什么。您将需要 cp 选项的所有依赖项 jar,其中包含分号分隔和完整路径信息。
  • @LeeMeador 我不能真正尝试,因为我有很多其他的 jars 和依赖项。
  • 使用mvn -X 记录一堆包含格式良好的类路径的内容。您可能会看到问题,但您可以将其剪切并粘贴到 shell 脚本或批处理文件中以尝试命令行操作。

标签: java maven classnotfoundexception


【解决方案1】:

查看this

只需将其添加到您的 pom.xml 中

<configuration>
      <executable>java</executable>
      <arguments>
        <argument>-Dmyproperty=myvalue</argument>
        <argument>-classpath</argument>
        <!-- automatically creates the classpath using all project dependencies,
             also adding the project build directory -->
        <classpath/>
        <argument>com.example.Main</argument>
        ...
      </arguments>
</configuration>

【讨论】:

    猜你喜欢
    • 2020-09-21
    • 2018-11-11
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多