带有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很高兴地认为它正在项目目录中构建,但实际上路径“../../”将其置于项目目录之外。 我的猜测是绝对路径也会起作用。