[英]maven with eclipse error “Path must include project and resource name”
我最近开始在 Eclipse 中使用 Maven。
我已经设置了几个项目,我注意到如果我尝试指定项目目录之外的构建目录(以覆盖目标),则在执行“更新项目”时会出现错误:
“更新 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 中,您可以找到很多类似的错误报告。
在您描述的情况下,这是一个已知限制。 但这不是m2e
错误 - 只是Eclipse JDT
不允许在项目之外设置输出目录。
恕我直言,很遗憾,因为如果 maven 支持这样的布局,那么我希望m2e
应该如此。
我已将其报告为错误 493229 。 但它已以WONTFIX状态关闭。
要回答问题的最后一段,您可以使用软链接解决问题。 我做的和你猜的有点不同。 创建符号链接的不是 Maven,因为这是 Eclipse JDT(正如其他人指出的那样)的一个问题,它有时不调用 Maven(似乎)。 这是我所做的,所有路径都相对于我的 Maven 项目目录:
1)我希望我的实际构建目录是“../../local/java/scratch/target”
2)我创建了一个软链接: ln -s ../../local ./
3)我将此条目添加到我的“pom.xml”中:
<build>
<directory>${project.basedir}/local/java/scratch/target</directory>
</build>
现在 Eclipse JDT 很高兴地认为它是在项目目录中构建的,但实际上路径“../../”将它带到了项目目录之外。 我的猜测是绝对路径也会起作用。
例如,如果您想在工作区外的某个文件夹中构建内容,您可以使用以下内容:
<build>
<plugins>
<plugin>
<executions>
<execution>
<phase>move-build</phase>
////do your build
</plugin>
<plugin>
<executions>
<execution>
<id>copy-resources</id>
<phase>move-build</phase>
// do your copying to external
</plugin>
<plugin>
<executions>
<execution>
<phase>move-build</phase>
// do your deletions from target
</plugin>
</plugins>
</build>
然后你可以调用mvn move-build
来完成你的构建、复制、删除。
why can't I build somewhere like ../build
是的,您可以在名为 build 的文件夹中构建,前提是它包含pom.xml
。
pom.xml
文件是 Maven 中项目配置的核心。 它是一个包含构建项目所需的大部分信息的单个配置文件。
简而言之, pom.xml
将包含构建项目的所有信息。 pom.xml
是一个包含 Maven 使用的项目配置详细信息的文件。 它提供了项目所需的所有配置。
我确信这个问题是由 Maven 或 Eclipse 引起的,也许是因为我在 Stackoverflow 上发现了这个和其他对该组合的引用。
经过大量调查,并有点生气,结果是 Git 参与了——尽管我不知道这是否是原因。
我的 Maven 项目由几个“嵌套”的 POM 组成,我没有在 Eclipse 中打开父 POM,而只打开子级。 我在顶层有几个文件(批处理脚本),我没有提交给 Git,但是一旦我提交了这些文件
Path must include project and resource name
问题完全消失。
Eclipse 版本:2020-12 (4.18.0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.