2016-12-01 64 views
4

如果你在Maven中聲明瞭一個依賴項,你可以添加一個類型,比如war,jar,ejb。Maven中的依賴:ejb類型的影響是什麼?

據我所知編譯類型爲ejb的項目與編譯類型爲jar的項目不同,因爲它觸發了不同的生命週期。

但聲明一個依賴有什麼區別?

Maven dependency type ejb vs jar似乎問同樣的問題,但接受的答案似乎很奇怪。我懷疑依賴項中的類型可能會觸發生命週期。其實,我期望這種類型的ejb和類型的jar完全一樣。有人可以闡明這一點嗎?

+1

也許更多的想法,可以添加,但沒錯,他們應該表現在完全相同的方式,只有[在Maven的乙醚提供商例如源代碼PEEK(HTTPS爲「文檔」的目的不同(:/ /github.com/apache/maven/blob/maven-3.3.9/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java#L115-L116))。如果您有一個包裝EJB的項目,即' ejb',則不是依賴於EJB,而是啓動不同的生命週期。 – Tunaki

回答

0

我懷疑,在依賴型可以觸發一個生命週期

你不是一個人懷疑。

在聲明與ejb類型的依賴,你從有關ejb作爲Maven的提供的一些設施中獲益:

  • 添加在application.xml的EJB的聲明的能力。 從Java EE 5開始,它不再是必需的。

  • 檢查依賴關係是EJB還是不是簡單的JAR。

  • 以及其他一些小問題。

,如果你用罐子type聲明你的依賴你就沒有這些設施。

正如你可以看到,它並沒有在很多事情改變,但無論如何,在這兩種情況下,它是用於依賴同一個JAR。

你不指ejb-client類型,但它往往是因爲違背了與使用相同的罐子,當你在依賴聲明ejb-client類型jarejb類型的依賴的情況下,更有趣的東西,你依賴於一個不同的jar,因爲這個jar應該只包含API類來調用ejb
當然,如果我們想要我們的ejb的版本ejb-client,我們必須在產生ejb的工件中指定它。