在maven中没有main.java的包名称

时间:2013-02-09 13:07:31

标签: java eclipse maven

我使用标准的Maven目录布局在Eclipse中开发我的项目。源位于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中完全是新手。

3 个答案:

答案 0 :(得分:40)

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的忠实粉丝。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

如果你正在使用eclipse,请使用m2e。对于maven项目,eclipse工作空间配置不正确