天天看點

java代碼怎麼動态修改xml配置檔案内容_(變強、變秃)Java從零開始之maven

三、 Maven工程

1 Maven 的工程類型

1.1 POM 工程 POM 工程是邏輯工程。用在父級工程或聚合工程中。用來做 jar 包的版本控制。 1.2 JAR 工程 将會打包成 jar 用作 jar 包使用。即常見的本地工程 - Java Project。 1.3 WAR 工程 将會打包成 war,釋出在伺服器上的工程。如網站或服務。即常見的網絡工程 - Dynamic Web Project。war 工程預設沒有 WEB-INF 目錄及 web.xml 配置檔案,IDE 通常會顯示工程錯誤,提供完整工程結構可以解決。

2 建立 Maven 項目

補:建立web項目要補齊WEB-INF 跟web.xml檔案

2.1 建立步驟 2.1.1 New--> other -->Maven Project

勾選, 建立純淨項目,不應用任何模版

2.2 填寫項目信 填寫項目信 息

2.2.1 Group Id 公司域名倒寫 ​ 2.2.2 Artifact Id 項目名 ​ 2.2.3 Version 版本名 ​ 2.2.4 Packaging 項目類型 ​ 2.2.4.1 Jar java 項目 ​ 2.2.4.2 War : web 項目 ​ 2.2.4.3 POM: 父項目. 如果項目有子項目, 項目必須是 pom ​ 2.2.5 Name : 自定義名稱, 内容任意 ​ 2.2.6 Description: 描述. 較長的描述. ​ 2.2.7 Parent Project: 如果目前項目有父項目時填寫

2.3 Maven 項目結構

src/main/java 這個目錄下儲存 java 源代碼 src/main/resources 儲存主要的資源檔案。比如spring的xml配置檔案和log4j的properties 檔案。 src/test/java 儲存測試用的類,比如 JUNIT 的測試一般就放在這個目錄下面 src/test/resources 儲存測試用的資源檔案 src 包含了項目所有的源代碼和資源檔案,以及其他項目相關的檔案。 target 編譯後内容放置的檔案夾 pom.xml 是 Maven 的基礎配置檔案。配置項目和項目之間關系,包括配置依賴關系等等

3 工程關系

3.1 依賴

即 A 工程開發或運作過程中需要 B 工程提供支援,則代表 A 工程依賴 B 工程。在這種 情況下,需要在 pom.xml 檔案中增加下屬配置定義依賴關系

<dependencies>
 
           

3.2 繼承

如果 A 工程繼承 B 工程,則代表 A 工程預設依賴 B 工程依賴的所有資源,且可以應用B 工程中定義的所有資源資訊。被繼承的工程(B 工程)隻能是 POM 工程。

<project
 
           

子工程pom配置檔案

<modelVersion>4.0.0
           

3.3 聚合

當我們開發的工程擁有 2 個以上子產品的時候,每個子產品都是一個獨立的功能集合。比如某大學系統中擁有搜尋平台,學習平台,考試平台等。開發的時候每個平台都可以獨立編譯,測試,運作。這個時候我們就需要一個聚合工程。在建立聚合工程的過程中,總的工程必須是一個 POM 工程(

Maven Project

),各子子產品可以是任意類型子產品(

Maven Module

)。所有聚合工程和聚合子產品必須處于同一個組(groupId)中,且聚合工程可以嵌套。

四、 Maven中的常見插件

1 編譯器插件

作用:設定jdk版本

1.1pom.xml 配置片段,目前maven項目有效

<build>
 
           

1.2 settings.xml 檔案中配置全局編譯器插件

<profile>
 
           

2 Tomcat 管理插件

作用:配置maven内嵌tomcat插件

2.1 本地應用 使用 Tomcat 插件釋出部署并執行 war 工程的時候,使用 maven build 功能實作。應用啟動指令為: tomcat7:run。指令中的 tomcat7 是插件命名,由插件提供商決定。run 為插件中的具體功能。具體 pom.xml 檔案的配置如下:

<build>
 
           

遠端熱部署:

遠端熱部署是指,在 Tomcat 容器運作過程中,動态實作 war 工程的部署,重新部署功能。具體指令為: tomcat7:deploy 或 tomcat7:redeploy。

pom.xml 檔案中的配置
<build>
 
           

3 資源拷貝插件

Maven 打包時将指定路徑配置檔案寶貝到項目中并做打包處理

<build>
 
           

五、 Maven 常用指令

1 install 本地安裝, 包含編譯,打包,安裝到本地倉庫 編譯 - javac 打包 - jar, 将 java 代碼打包為 jar 檔案 安裝到本地倉庫 - 将打包的 jar 檔案,儲存到本地倉庫目錄中。 2 clean 清除已編譯資訊。 删除工程中的 target 目錄。 3 compile 隻編譯。 javac 指令 4 deploy 部署。 常見于結合私服使用的指令。 相當于是 install+上傳 jar 到私服。 包含編譯,打包,安裝到本地倉庫,上傳到私服倉庫。 5 package 打包。 包含編譯,打包兩個功能。

六、 私服

1 什麼是私服 私服是一種特殊的遠端倉庫,它是架設在區域網路的倉庫服務,私服代理廣域網上的遠端倉庫,供區域網路使用。 在企業開發中,私服的建設是有必要的,其好處如下:

1.1 節省資金 節省資金 、 外網帶寬

利用私服代理外部倉庫之後,對外的重複構件下載下傳便得以簡化,降低外網帶寬壓力。

1.2 加速 Maven 建構

不停地連接配接請求外部倉庫是相當耗時的,但是 maven 的一些内部機制(如快照更新檢查)要求 Maven 在執行建構的時候不停地檢查遠端倉庫資料。是以,當項目配置了很多外部遠端倉庫的時候,建構速度會降低。使用私服解決這問題,因為 Maven 隻需要檢查區域網路内私服的資料時,建構速度便有明顯提高。

1.3 部署第三方構件

當某個構件無法從任何一個遠端倉庫擷取怎麼辦?比如 Oracle 的 JDBC 驅動由于版權原因不能釋出到公共倉庫中。建立私服後,便可以将這些構件部署到這個内部倉庫中,供内部 Maven 項目使用。

1.4 提高穩定性,增強控制

對于遠端倉庫來說,當外網不可用時,Maven 建構有可能因為依賴沒有下載下傳而不可行,搭建并應用私服後,即使沒有外網,如果該構件之前被其它人下載下傳過就會存在私服上,此時再次依賴該構件就可以不用連接配接外網直接就可以從私服上下載下傳到。同時私服軟體(nexus)還提供了額外的管理功能。

1.5 降低中央倉庫的負荷

中央倉庫是有限的。如果所有的 Maven 工程開發過程中,都通過中央倉庫實作構件的依賴和管理,那麼中央倉庫的負荷過高,也會嚴重影響工程建構的效率。如果使用私服,可以分散中央倉庫的負荷,隻有在私服中沒有需要依賴的構件時才會去連接配接中央倉庫。

2 nexus 私服搭建

2.1 搭建環境

環境:CentOS6.5、JDK7、Sonatype Nexus、Maven(Eclipse 或 MyEclipse)

2.2 搭建步驟 2.2.1 安裝 JDK 2.2.1.1 JDK 資源包下載下傳

JDK 官方下載下傳位址為: http://www.oracle.com/technetwork/java/javase/downloads/index.html 本課程使用版本為 JDK1.7。(jdk-7u80-linux-x64.tar.gz)

2.2.1.2 JDK 資源包解壓

在 Linux 中安裝應用的常用目錄為:/opt 或/usr/local 目錄。本課件将 JDK 安裝到 /usr/local/java 目錄中。 解壓 JDK 到指定目錄: tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local 重命名 JDK 目錄: mv /usr/local/jdk1.7.0_80 /usr/local/java

2.2.1.3 環境變量配置

修改/etc/profile 配置檔案,增加環境變量配置。

export JAVA_HOME=/usr/local/java
 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 export PATH=$JAVA_HOME/bin:$PATH
           

環境變量修改後,可以重新開機 Linux 實作永久生效;或執行 source /etc/profile 指令,讓新修改的環境變量在目前終端中生效。

2.2.2 安裝私服 Nexus 2.2.2.2 Nexus 資源包解壓

在/usr/local 目錄中建立子目錄 nexus: mkdir /usr/local/nexus 解壓 Nexus 到指定目錄: tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C /usr/local/nexus Nexus 壓縮包中包含兩個子目錄: nexus-2.11.2-03 和 sonatype-work nexus-2.11.2-03 是具體的私服應用内容,sonatype-work 是 Nexus 私服下載下傳的構件存放工作目錄。

2.2.2.3 檢查私服端口和工作目錄

在 nexus-2.11.2-03 目錄中有子目錄 conf,其中儲存私服應用的配置資訊。檢視 nexus.properties 檔案,确定私服通路端口和工作目錄。此操作可不做任何内容修改。配置檔案内容如下:

java代碼怎麼動态修改xml配置檔案内容_(變強、變秃)Java從零開始之maven

Jetty section,Nexus 私服應用是使用 Jetty 提供 web 服務的,下述内容為 Jetty 配置。 application-port=8081 # 私服通路端口 application-host=0.0.0.0 nexus-webapp=${bundleBasedir}/nexus # Nexus 私服 WEB 應用所在位置 nexus-webapp-context-path=/nexus # Nexus 私服 WEB 應用 contextPath

Nexus section Nexus 私服配置資訊

nexus-work=${bundleBasedir}/../sonatype-work/nexus # 私服工作目錄,即構件儲存目錄 runtime=${bundleBasedir}/nexus/WEB-INF # 私服 WEB 應用運作目錄

2.2.2.4 修改 Nexus

設定通路linux權限,在nexus-2.11.2-03/bin/nexus腳本檔案中定義。需要修改的資訊如下:

#RUN_AS_USER= #原内容 RUN_AS_USER=root #修改後的内容,代表 Nexus 私服使用 root 使用者權限。

2.2.2.5 修改防火牆,開放 Nexus

修改防火牆配置檔案,開放 Nexus 私服的通路端口 8081(2.2.2.3 章節内容)。 vi /etc/sysconfig/iptables 增加下述内容: -A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT 重新啟動防火牆: service iptables restart

2.2.2.6 啟動并測試通路

啟動 Nexus 私服: /usr/local/nexus/nexus-2.11.2-03/bin/nexus start

可通過指令檢查私服運作狀态: /usr/local/nexus/nexus-2.11.2-03/bin/nexus status

也可使用浏覽器通路 Nexus 私服 WEB 應用, 通路位址為: http://ip:8081/nexus

3 私服配置

Nexus 預設提供管理使用者,使用者名為 admin,密碼為 admin123。

常用倉庫類型為:hosted 和 proxy

設定 proxy 代理倉庫(Apache Snapshots/Central/Codehaus Snapshots)準許遠端下載下傳。

java代碼怎麼動态修改xml配置檔案内容_(變強、變秃)Java從零開始之maven

4 私服應用

要在 Maven 工程中使用私服,需要提供私服配置資訊。

4.1 settings.xml
<?xml version="1.0" encoding="UTF-8"?>
 
           
4.2 pom.xml 檔案

在頂級的 maven 父工程中定義。所有子工程自動導入依賴。

<project
 
           

build-deploy指令 上傳到私服

java代碼怎麼動态修改xml配置檔案内容_(變強、變秃)Java從零開始之maven
java代碼怎麼動态修改xml配置檔案内容_(變強、變秃)Java從零開始之maven

七、 Maven 實戰

1.建立maven parent工程 pom類型

配置pom檔案 jar包注入聲明、配置開啟插件、所有版本資訊等

2.建立聚合工程 Manager pom類型 ,用于統一管理項目。

3在聚合工程上建立Maven Module

3.1建立mgr-pojo jar類型

3.2建立mgr-mapper jar類型

修改pom配置檔案,注入pojo、mybatis、mysql、連接配接池

3.3建立mrg-service jar類型

修改pom注入mapper、spring

3.4建立mgr-controller war類型

修改pom注入service、jsp相關

4.資料庫這種建表users

5.controller中架構整合

  • 資料庫配置檔案 db.properties
  • mybatis配置檔案 主要為了配置字分頁插件
  • applicationContext-dao.xml
  • applicationContext-service.xml
  • applicationContext-trans.xml
  • springmvc.xml
  • web.xml

6.配置Tomcat插件與資源拷貝插件

  • mgr-Controller 配置檔案pom中配置tomcat插件
  • mgr-mapper配置檔案pom中配置資源拷貝插件,打包時附帶mapper.xml檔案

7.run as maven-install 打包項目

clean tomcat7:run 清除并啟動tomcat

8.以上完成就可以按mvc分層編寫項目代碼。