簡體   English   中英

如何在兩個項目之間共享代碼?

[英]How to share code between two projects?

我有兩個名為 A 和 B 的 Java 項目。它們都是部署為 war 文件的 Web 應用程序。 我分別在 Eclipse 工作區中創建了它們。 項目 B 使用項目 A 中名為MusicMapper 我按照這篇文章的建議將項目 A 添加到 Eclipse 中項目 B 的構建路徑。 所以現在項目 B 可以編譯而不會出現任何錯誤,並且可以通過將其導入項目 B 來在項目 B 中看到類MusicMapper

import com.projectA.MusicMapper;

在啟動項目 B 的 Web 應用程序之前,一切似乎都很好。 但是,當我啟動項目 B 並調用項目 A 中引用類MusicMapper的代碼時,出現以下運行時錯誤:

java.lang.ClassNotFoundException: com.projectA.MusicMapper

所以這個錯誤似乎是由未找到的類com.projectA.MusicMapper造成的?

我采用的另一種方法是:我還嘗試在項目 B 的pom.xml使用以下 Maven 導入:

    <dependency>
        <groupId>com.projectA</groupId>
        <artifactId>projectA</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>system</scope>
        <systemPath>/path/to/projectA.jar</systemPath>
    </dependency>

其中projectA.jar是我從項目 A 導出的 jar 文件。但它仍然給了我相同的ClassNotFoundException 如何使項目 A 中的課程可供項目 B 使用? 似乎我嘗試過的兩種方法都不起作用。

首先,如果您有兩個項目都部署為戰爭,那么將一個項目作為依賴項包含在另一個項目中並不是一個好主意。 因為你會在項目 B 中加入很多你不需要的其他東西。

更好的方法是創建第三個 java 項目,讓我們說“通用”這應該只是一個java 項目不是動態 Web 項目,並且應該編譯為 jar。 將項目 A 和項目 B 之間共享的所有內容移動到公共項目中。

現在回到你的問題在 eclipse 的項目構建路徑中添加一些東西並不意味着你已經在 eclipse 之外添加了對你的項目的依賴。 Eclipse 不會抱怨,因為它可以解析並找到項目,因為您在 Eclipse 構建路徑中添加了該項目。 您必須使用一些構建工具(如 ant、maven 或 gradle)編譯公共依賴項目,並在構建 war 時將 jar 打包到您的 war 文件中。

如果您不想使用構建工具,一個簡單的方法就是將 eclipse 中的第三個項目導出為 jar。 在從 eclipse 導出 war 文件之前,復制項目 A 和項目 B 的 WEB-INF/lib 文件夾中的公共 jar 文件。

我希望它有幫助:)

暫無
暫無

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

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