我使用标准的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中完全是新手。
答案 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工作空间配置不正确