[英]How to add a local non-maven project as a dependency for a maven project?
我創建了一個新的 Spring Web 應用程序,我非常想使用 Maven 來處理構建/依賴項。 我的問題是該項目依賴於一些現有的本地項目,目前還不能選擇對它們進行 mavenizing。 是否有可能依賴這些項目而不對其進行 mavenizing?
我認為最簡單的方法是將本地依賴項部署到本地存儲庫,以便 maven 可以將其用作常規依賴項。
要將本地jar
文件部署到本地存儲庫,請使用如下命令行:
mvn install:install-file -Dfile=<MY-FILE> -DgroupId=MY-GROUP-ID -DartifactId=MY-ARGIFACT -Dversion=MY-VERSION -Dpackaging=jar
如果你的公司有像 Artifactory 這樣的共享存儲庫,你可以在那里部署 jar。 否則,每個開發人員都必須部署到他的本地存儲庫中。 好消息是它必須只做一次。
編輯。
這是一種將項目到項目依賴項定義到pom.xml
<dependency>
<groupId>com.mycompany.util</groupId>
<artifactId>util</artifactId>
<version>${com.mycompany.version}</version>
</dependency>
而已。 Util 只是我工作區的另一個項目。
不,你不應該嘗試那個。 Maven 的主要目標是標准化構建。 這就是 Maven 如此易於使用的原因:異常不是常態。 這就是為什么 Maven 要求所有依賴項都采用典型的 Maven 格式(POM + jar)。
當您說“mavenizing 它們目前不是一種選擇”時,您基本上是說“Maven 目前不是一種選擇”。 根據我的經驗,將現有項目轉換為 Maven 只需要幾分鍾......除非該項目使用混亂、不可靠的構建過程,在這種情況下,您真的應該盡快將其轉換為 Maven,以免浪費更多寶貴的時間. :-)
如果其他一切都失敗了,請使用構建服務器從依賴項目生成 JAR 文件,並將它們部署到公司范圍的存儲庫服務器或僅部署到您的本地機器。
這個答案有點晚了,但以防萬一有人需要它,我找到了使用 Maven 的Build Helper Plugin的解決方案,也就是說,如果您不想將非 Maven 項目部署為 jar:
所以基本上你只需在<sources>
標簽中添加非 maven 項目的源目錄:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>C:\Users\user123\eclipse-workspace\my_non_maven_project\src</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
現在,如果該非 Maven 項目有自己的依賴項,則還需要將它們添加到 Maven 項目的<dependencies>
部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.