簡體   English   中英

Java項目對另一個項目的依賴

[英]Java project dependency on another project

我有一個Maven項目(Proj1)。 在我的Java類中,我必須調用另一個Maven項目(proj2)的方法。

在這里,我遇到各種編譯時錯誤,因為該方法在當前項目(proj1)中不可用。 為了解決這個問題,我采用了完整的方法代碼並將該方法粘貼到當前的Java類中。 現在,該方法在我的項目中可用。 但是然后該方法再次調用了其他類中的其他代碼,這些代碼在我當前的項目中仍然不可用。 同樣,我需要復制並粘貼其他類中的所有相關代碼。 這種情況不斷發生,並且存在循環依賴性,所以想知道如何解決此錯誤。 為了解決這個問題,我有幾個選擇。

  1. 從proj2中獲取所有類的源,然后從其中制作一個jar,並將該jar包含在我的類路徑中。 這解決了一些錯誤,但是第三方jar中有一些類仍然給出錯誤。
  2. 現在,我正在計划第二個選項,其中有用於proj2的pom.xml。 我以此為基礎建立。 這樣所有必需的jar都會從存儲庫中下載。 該項目的輸出再次是名為proj2.jar的jar。

現在我的問題是

  1. 如果我在代碼中僅包含proj2.jar,那么它將解決所有依賴性嗎?
  2. 或者我需要手動添加proj2中存在的proj1 class-path中的所有jar
  3. 或者我需要添加proj2的src以及proj2.jar中的jar?
  4. 還是有比上述選項更好的方法呢?

讓您所有的項目都使用Maven。 使用以下標頭將pom.xml添加到項目的根目錄(我不知道您的打包結構,因此com.sachin是占位符。您可以要求IDE為您添加maven支持):

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sachin</groupId>
    <artifactId>Proj2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>My Proj2</name>

Proj1添加相同的標頭,並將Proj1依賴項添加到Proj2

<dependency>
    <groupId>com.sachin</groupId>
    <artifactId>Proj2</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

maven build Proj2將作為jar依賴項添加到Proj1

如果我在代碼中僅包含proj2.jar,那么它將解決所有依賴性嗎?

如果您的proj2.jar具有pom.xml並帶有proj2.jar使用的依賴 proj2.jar -則是的,它們將在使用maven構建proj1過程中獲取。

有關Maven依賴機制的官方文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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