[英]How to add local project (not jar) as a dependency to a Maven project
我有兩個 Maven 項目,我已將它們作為兩個模塊添加到一個 Intellij Idea 的項目中。 項目 B 依賴於項目 A。
這是他們的 pom.xml 文件的簡化版本。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.group</groupId>
<artifactId>a</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.group</groupId>
<artifactId>b</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.group</groupId>
<artifactId>a</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
項目 A 很容易編譯,因為它沒有依賴項。 但是項目 B 取決於項目 A,並且由於我沒有告訴 maven 如何找到它,因此無法使用mvn package
對其進行編譯。 但如果我沒記錯的話,這可以使用 Intellij Idea 的“Meven Projects”菜單,因為對於 Intellij Idea,這兩個項目都是已知的。
但是現在,由於某種未知的原因,即使在 Intellij Idea 中我也無法編譯項目 B。 當我這樣做時,它會提示:
[ERROR] Failed to execute goal on project b: Could not resolve dependencies for project com.group:b:jar:1.0-SNAPSHOT: Could not find artifact com.group:a:jar:1.0-SNAPSHOT -> [Help 1]
我的問題是,如何將一個項目作為其依賴項包含到另一個項目中? 請注意,我不是在 maven 中尋找本地依賴注入,因為我希望將來當我將包上傳到某個存儲庫時它可以工作。
您的項目B依賴於項目A,並且您已將其指定為pom文件中的依賴項。 項目B無法找到項目A的唯一原因可能是因為項目未在本地.m2存儲庫中安裝工件。 因此,您必須首先對項目A執行mvn clean安裝,這將在您的maven存儲庫中創建工件。 然后,您應該可以在項目B中使用工件A.
由於我來這里是在與Z32F7222222226696F30787889194DEE83E5Z一起解決的同一問題,因此在某些評論中提到(其中Intellij焦點似乎並不明顯),我想指向Z322F72222222222222222222222222222222222222222222222222222222222222222222222222222222202696f30788888888888883E1919483EESEE: /stackoverflow.com/a/10696646/1915920
對我們來說,關鍵點是工作區中的依賴項目pom.xml
版本匹配(在依賴和依賴pom.xml
中) ,因此工作區分辨率有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.