2016-05-01 29 views
2

我正在創建一個基於JAR包裝生命週期的定製Maven包裝。我想知道這個生命週期的定義(即components.xml源代碼位置)。JAR包裝定義的Maven生命週期在哪裏?

+0

爲什麼要創建自定義包裝? – khmarbaise

+0

我的團隊需要自動化PL/SQL項目的構建過程(編譯,運行測試,打包和部署)。 Maven足夠靈活,可用於非Java項目。所以,我們開始創建一些自定義插件和一個新的包裝類型。 –

回答

4

你對你的問題有一個小小的誤解。 "jar"包裝沒有特殊的生命週期。它基於默認的生命週期。

the lifecycle reference

Maven的定義3個生命週期中META-INF/plexus/components.xml

  • default生命週期
  • clean生命週期
  • site生命週期

你可以在源代碼here for Maven 3.3.9找到這個components.xml的文件。

default生命週期而沒有任何相關插件定義:因爲它們取決於包裝上的生命週期default沒有定義任何綁定。該生命週期的插件綁定是defined separately for every packaging

每個標準包裝(如"jar")都定義了插件,這些插件綁定到此默認生命週期的特定階段。您可以在文件default-bindings.xml內找到這些綁定。

讓這兩個單獨文件的目標是區分定義它包含的階段的生命週期和定義插件的哪些目標應該綁定到該生命週期的哪些階段的打包。

+0

謝謝。我的誤解是基於這本在線書: https://books.sonatype.com/mvnref-book/reference/lifecycle-sect-package-specific.html 它使用表達式「包特定的生命週期」,但我同意你的觀點。 –

+1

@FernandoCosta這本Maven書是非常好的資源。是的,「包特定的生命週期」的標題可能有點誤導(因爲它只是默認的),但後面的文本是正確的。生命週期的配置發生變化,而不是生命週期本身。 – Tunaki

+0

當然,這是非常好的。我從閱讀中學到很多東西。 –

相關問題