簡體   English   中英

Maven 與 Eclipse 錯誤“路徑必須包含項目和資源名稱”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM