带有eclipse错误的maven“路径必须包含项目和资源名称”

我最近开始使用maven和eclipse。

我已经设置了几个项目,我注意到如果我尝试指定一个在项目目录之外的构建目录(覆盖目标),那么在执行“更新项目”时会出错:

‘更新Maven项目’遇到了问题。

在“更新MAven项目”期间发生内部错误。 路径必须包含项目和资源名称:/ [我的项目名称]

我需要在项目之外进行构建。 我怎么能绕过这个? 我可以让maven自动创建一个软链接吗?

虽然这是一个相当老的线程,但我最近遇到了这个问题,并且能够解决它。 maven抛出此错误的原因是我在我的pom.xml文件中的某个地方,一个绝对路径与项目导入到eclipse的目录不一致。 所以我有两个绝对路径(一个不正确,或指向前一个位置)指向pom.xml文件中的资源,即project.build.outputDirectory

解决方案:找到有故障的绝对路径/home/userA/ProjectB/bin ,并替换为相对的./bin路径。 在eclipse中更新项目,你应该没问题。

这是一个有点旧的线程,但因为没有人给出正确的答案……

以下Eclipse错误:

 An internal error occurred during: "Updating Maven Project". java.lang.IllegalArgumentException: Path must include project and resource name: at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63) at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:2069) at ... 

可以在许多不同的场景中发生 – 在Eclipse Bugzilla中你可以找到很多类似的bug报告。

在您描述的情况下,这是一个已知的限制 。 但这不是m2e错误 – 只是Eclipse JDT不允许在项目之外设置输出目录。
恕我直言,很遗憾,因为如果maven支持这样的布局,那么我希望m2e应该如此。

我已将其报告为错误493229 。 但它已被关闭状态WONTFIX

例如,如果您希望在工作区外的某个文件夹中构建内容,则可以使用以下内容:

      move-build ////do your build     copy-resources move-build // do your copying to external     move-build // do your deletions from target    

然后你可以调用mvn move-build来完成构建,复制,删除。

这是复制到外部文件夹和删除的示例,您可以将它们组合到您的移动构建阶段,如上所述

why can't I build somewhere like ../build

是的,如果它包含pom.xml你可以构建一个名为build的文件夹。

pom.xml文件是Maven中项目配置的核心。 它是一个配置文件,包含构建项目所需的大部分信息。

简而言之, pom.xml将包含构建项目的所有信息。 pom.xml是一个文件,其中包含Maven使用的项目配置详细信息。 它提供了项目所需的所有配置。

要回答问题中的最后一段,您可以使用软链接来解决问题。 我做的与你猜测的有点不同。 创建符号链接不是Maven,因为这是Eclipse JDT的问题(正如其他人所指出的那样),有时会运行而不会调用Maven(似乎)。 这是我所做的,包含与Maven项目目录相关的所有路径:

1)我希望我的实际构建目录是“../../local/java/scratch/target”

2)我创建了一个软链接: ln -s ../../local ./

3)我将此条目添加到我的“pom.xml”:

  ${project.basedir}/local/java/scratch/target  

现在,Eclipse JDT很高兴地认为它正在项目目录中构建,但实际上路径“../../”将其置于项目目录之外。 我的猜测是绝对路径也会起作用。