maven deploy plugin_Maven工程概念和关系
Maven工程種類、關系及常用插件
1 工程種類
1.1 POM 工程
用在父級工程或聚合工程中。用來做 jar 包的版本控制。常見 pom.xml 配置如下:
1.2 JAR 工程
將會打包成 jar 用作 jar 包使用。即常見的本地工程 - Java Project。常見 pom.xml 配置
如下:
1.3 WAR 工程
將會打包成 war,發布在服務器上的工程。如網站或服務。即常見的網絡工程 - Dynamic Web Project。war 工程默認沒有 WEB-INF 目錄及 web.xml 配置文件,IDE 通常會顯示工程錯誤,提供完整工程結構可以解決。常見 pom.xml 配置如下:
2 工程關系
2.1 依賴
即 A 工程開發或運行過程中需要 B 工程提供支持,則代表 A 工程依賴 B 工程。在這種情況下,需要在 pom.xml 文件中增加下屬配置
定義依賴關系:
2.2 繼承
如果 A 工程繼承 B 工程,則代表 A 工程默認依賴 B 工程依賴的所有資源,且可以應用 B 工程中定義的所有資源信息。被繼承的工程(B 工程)只能是 POM 工程。具體工程 pom.xml 文件配置如下:
2.2.1 父工程配置
2.2.2 子工程配置
2.3 聚合
當我們開發的工程擁有 2 個以上模塊的時候,每個模塊都是一個獨立的功能集合。比如
某大學系統中擁有搜索平臺,學習平臺,考試平臺等。開發的時候每個平臺都可以獨立編譯,測試,運行。這個時候我們就需要一個聚合工程。
在創建聚合工程的過程中,總的工程必須是一個 POM 工程(Maven Project),各子模塊可以是任意類型模塊(Maven Module)。所有聚合工程和聚合模塊必須處于同一個組(groupId)中,且聚合工程可以嵌套。具體 pom.xml 文件配置如下: 2.3.1 總工程配置
2.3.2 子模塊配置
3. Maven 中的常見插件
我們都知道 Maven 本質上是一個插件框架,它的核心并不執行任何具體的構建任務,所有 這些任務都交給插件來完成,例如編譯源代碼是由 maven- compiler-plugin 完成的。進一步說,每個任務對應了一個插件目標(goal),每個插件會有一個或者多個目標,例如 maven- compiler-plugin 的 compile 目標用來編譯位于 src/main/java/目錄下的主源碼,testCompile 目標用來編譯位于 src/test/java/目錄下的測試源碼。
認識上述 Maven 插件的基本概念能幫助你理解 Maven 的工作機制,不過要想更高效率地使用 Maven,了解一些常用的插件還是很有必要的,這可 以幫助你避免一不小心重新發明輪子。多年來 Maven 社區積累了大量的經驗,并隨之形成了一個成熟的插件生態圈。Maven 官方有兩個插件列表,第一個列 表的 GroupId 為 org.apache.maven.plugins,這里的插件最為成熟,具體地址為:http://maven.apache.org/plugins/index.html。第二個列表的 GroupId 為 org.codehaus.mojo,這里的插件沒有那么核心,但也有不少十分有用,其地址為: http://mojo.codehaus.org/plugins.html。
下面介紹兩種簡單的常用插件配置。
1 編譯器插件
1.1 pom.xml 配置片段
1.2 settings.xml 文件中配置全局編譯器插件
2 Tomcat 管理插件
2.1 本地應用
使用 Tomcat 插件發布部署并執行 war 工程的時候,使用 maven build 功能實現。應用啟動命令為: tomcat7:run。命令中的 tomcat7 是插件命名,由插件提供商決定。run 為插件中的具體功能。具體 pom.xml 文件的配置如下:
2.2 遠程熱部署
遠程熱部署是指,在 Tomcat 容器運行過程中,動態實現 war 工程的部署,重新部署功能。使用 maven build 功能實現,具體命令為: tomcat7:deploy 或 tomcat7:redeploy。其中 deploy 代表第一次部署 war 工程;redeploy 代表 Tomcat 容器中已有同名應用,本次操作為重新部署同名 war 工程。
實現熱部署需要遠程訪問 Tomcat 容器,所以 Tomcat 容器需要提供合適的訪問方式和驗證方式。 實現熱部署,需要訪問 Tomcat 容器提供的原始應用 manager,并提供有效有權限的訪問用戶,所以在 Tomcat 中也需提供部分配置。具體配置內容如下:
2.2.1 Tomcat 中的 conf/tomcat-users.xml 文件的配置
2.2.2 pom.xml 文件中的配置
轉發關注私聊我即可獲得2019最新的java高級架構與大數據開發資料
總結
以上是生活随笔為你收集整理的maven deploy plugin_Maven工程概念和关系的全部內容,希望文章能夠幫你解決所遇到的問題。