【问题标题】:Package name without main.java in mavenmaven中没有main.java的包名
【发布时间】:2013-02-09 13:07:31
【问题描述】:

我在 Eclipse 中使用标准 Maven 目录布局开发我的项目。源代码位于 src/main/java/com/mycompany 目录中。并且需要将我的源类放在包 main.java.com.mycompany 中。 当我构建可执行的 jar 文件时,我必须在 Manifest.MF 中定义主类,例如:

    Main-Class: main.java.com.mycompany.MyMainClass

但是我在很多示例中看​​到(例如在 maven-assembly-plugin 或 maven-jar-plugin 中配置 mainClass 属性),指定类名时没有 main.java 部分。我只想拥有

    Main-Class: com.mycompany.MyMainClass

我不知道如何实现这一点,因为我完全是 Maven 新手。

【问题讨论】:

  • 给定的 main.java 包与 src/main/java 位置无关。如果需要这比您在 Eclipse (m2e) 等中的配置是错误的。
  • 我还没有使用 Eclipse (m2e) 或 Maven 之类的 Maven 插件,只是从命令行使用 mvn 构建了项目。

标签: java eclipse maven


【解决方案1】:

Maven 的默认目录布局与 Eclipse 在您创建新 Java 项目时使用的布局不同。

其实很简单。当您创建一个新的 Java 项目时,Eclipse 会在您的文件系统上创建一个名为“src”的文件夹,您应该在其中放置源代码。此外,Eclipse 将此文件夹配置为“源文件夹”。您在此文件夹中创建的每个文件夹都将代表一个 Java 包。

Maven 想要的有点不同。 Maven 喜欢你有一个 'src/main/java' 文件夹,其中 'java' 子文件夹配置为源文件夹。因此,在这个 java 文件夹下创建的所有文件夹都将代表 Java 包。

您可以从项目属性中管理 Eclipse 中的源文件夹。右键单击您的项目,选择“构建路径-> 配置构建路径”。在弹出窗口中打开“源”选项卡。现在,将“src”作为源文件夹移除,并将其替换为“src/main/java”。

现在 Eclipse 会将您的包识别为 com.mycompany 而不是 main.java.com.mycompany。

我总是使用 maven-eclipse 插件从命令行生成我的 eclipse 项目和类路径文件。我不是 m2e 的忠实粉丝。

【讨论】:

    【解决方案2】:

    您也可以尝试更新 maven 项目。 右键单击项目 > Maven > 更新 Maven 项目。

    【讨论】:

      【解决方案3】:

      如果您使用 Eclipse,请使用 m2e。 Maven项目的eclipse工作区配置不正确

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-23
        • 2023-04-04
        • 2021-01-12
        • 1970-01-01
        • 1970-01-01
        • 2011-11-27
        • 1970-01-01
        • 2017-06-10
        相关资源
        最近更新 更多