簡體   English   中英

如何添加本地非maven項目作為maven項目的依賴?

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

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