1. 程式人生 > 實用技巧 >ul li 橫向佈局 ,點選li顯示對應的內容

ul li 橫向佈局 ,點選li顯示對應的內容

一、 Maven簡介
目前無論使用IDEA還是Eclipse等其他IDE,使用裡面ANT工具。ANT工具幫助我們進行編譯,打包執行等工作。
Apache基於ANT進行了升級,研發出了全新的自動化構建工具Maven。(知道:ANT有的功能MAVEN都有,只是使用起來更加方便了,功能更加強大了。)
以後建立的都是Maven專案,無論是普通java se專案還是java ee專案都是maven專案。
Maven工具基於POM(Project Object Model,專案物件模型)模式實現的。在Maven中每個專案都相當於是一個物件,物件(專案)和物件(專案)之間是有關係的。關係包含了:依賴、繼承、聚合,實現Maven專案可以更加方便的實現導jar包、拆分專案等效果。

二、 Maven工具關於導jar(依賴)的實現原理
在Maven工具所謂的匯入jar實際上就是關係中的“依賴”,所有需要匯入的jar,都是在maven工具的pom.xml中進行實現的(配置<dependency>)。而是Maven工具會根據pom.xml中的配置進行自動下載對應的jar包。從中央倉庫進行下載,下載到本地倉庫中進行使用。下載時是根據座標進行確認需要下載的jar包。
中央倉庫:網際網路上的伺服器。伺服器中包含所有jar包(jar包公司只要上傳過)。不是必須使用哪個。預設是maven自己的網路伺服器,但是由於速度較慢,我們一般都配置成國內的中央倉庫(配置成阿里的)
本地倉庫:本機中資料夾。資料夾包含了自己下載的jar。資料夾結構為groupid分級的資料夾/artifactid資料夾/version資料夾/包含jar包。
座標:座標包含了三個點,只有有一個點不一樣就是不同的jar
Group Id:公司名。多用公司網址倒寫。感覺和包寫法一樣。
Artifact Id:專案名。
Version:版本。
平時如果希望查詢座標,多去下面這個網站進行查詢。
https://mvnrepository.com
http://maven.aliyun.com

三、 Maven總體配置
預設本地倉庫: C:/使用者/登入使用者資料夾/.m2/repository
在C:/使用者/使用者資料夾/下建立.m2檔案,去01軟體中把settings.xml放入到.m2資料夾中。

1 settings.xml中配置項
1.1 配置本地倉庫地址
此步驟不是必須配置,如果在公司中公司提供了本地倉庫內容此步驟必須配置。
如果不配置預設安裝在C:/使用者/使用者資料夾/.m2中
<localRepository>D:/repository</localRepository>
1.2 配置中央倉庫
在<mirrors>下新增

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

1.3 配置JDK版本
在<profiles>下新增

<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>

四、 Maven專案結構
java資料夾和resource資料夾中內容(如果是web專案)最終也會被編譯到WEB-INF/classes中。放到resource中配置檔案和之前使用ant專案時,把配置檔案放入到src的效果是完全一樣的。
--demo 專案名
--.idea 專案的配置,自動生成的,不需要關注。
--src
-- main 實際開發內容
--java 寫包和java程式碼,此檔案預設只編譯.java檔案
--resource 所有配置檔案。最終編譯把配置檔案放入到classpath中。
-- test 測試時使用,自己寫測試類或junit工具等
--java 打包時不會儲存到jar或war包中
pom.xml 整個maven專案所有配置內容。

五、 POM模型
1 依賴關係
通俗理解:導jar包。可以匯入中央倉庫的jar,也可以匯入當前開發中其他專案打包後的jar包。
在pom.xml中<dependencies>中通過<dependency>結合座標進行匯入。

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
</dependencies>

1.1 依賴的傳遞性
如果A依賴了B,那麼C依賴A時會自動把A和B都匯入進來。
建立A專案後,選擇IDEA最右側Maven面板lifecycle,雙擊install後就會把專案安裝到本地倉庫中,其他專案就可以通過座標引用此專案。
1.2 取消依賴傳遞性

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.11.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>

2 繼承關係
設定F專案繼承E專案,在F專案中配置parent標籤。在E專案POM.xml中配置的內容就被F專案繼承了。相當於在F專案也配置一遍(不是所有內容都能繼承的)。

<parent>
<groupId>com.bjsxt</groupId>
<artifactId>e</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

2.1 dependencyManagement
dependencyManagement宣告依賴關係。作用:統一版本管理。一般情況下都結合properties使用。
<properties>裡面標籤名自定義

<properties>
<mybatis-version>3.5.3</mybatis-version>
<mysql-driver-version>5.1.48</mysql-driver-version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis-version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-driver-version}</version>
</dependency>
</dependencies>
</dependencyManagement>

3 聚合關係
前提:繼承。
聚合包含了繼承的特性。
聚合時多個專案的本質還是一個專案。這些專案被一個大的父專案包含。且這時父專案型別為pom型別。同時在父專案的pom.xml中出現<modules>表示包含的所有子模組。
即使在idea中,也可以使用聚合在一個視窗建立多個專案。
3.1 刪除模組步驟
右鍵模組--> remove module

右鍵專案 --> delete

在父專案中pom.xml中<modules>中刪除模組名

3.2 新建之前刪除過的同名專案步驟
選單 settings --> 取消複選框的勾選。否則新建專案pom.xml中配置內容無效。

六、 Maven 中專案型別
在pom.xml中通過<packaging>進行設定專案的型別。預設為jar型別。
packaging的可取值:
jar 預設值
pom 聚合專案時,父專案型別。沒有實際意義。
war web專案。沒有學習spring boot 之前,建立web專案時需要手動修改packaging型別為war型別(今天)。
packaging直接影響專案最後install時專案的打包型別。
七、 建立war型別Maven專案
1 建立maven專案
正常建立一個maven專案
在pom.xml配置檔案中增加標籤: <packaging>war</packaging>。 標籤代表當前的應用是一個war工程。
2 建立webapp資料夾
在src/main下新建webapp資料夾
在webapp下新建WEB-INF資料夾
在WEB-INF下新建web.xml(01資料中有)
3 配置web模組
如果不配置會導致無法新建jsp檔案
選單 --> project struct -->
4 配置pom.xml
配置<packagin>為war
匯入web的依賴
配置tomcat外掛

<packaging>war</packaging>
<groupId>com.bjsxt</groupId>
<artifactId>myweb</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 釋出後叫做ROOT -->
<path>/</path>
<port>80</port>
</configuration>
</plugin>
</plugins>
</build>

5 執行

八、 scope屬性可取值
compile:預設值,表示該依賴在編譯和執行時都生效。
provided:只在編譯期生效。依賴和外掛衝突時使用。
runtime:只在執行時生效
test:只在測試的時候生效。依賴junit時使用。
system:和provided類似,表示該jar需要引用外部額外jar。
import:替代父專案時scope取值。通常在springboot和springcloud技術中使用。

九、 Maven專案名規範
maven的專案不要使用-(減號),而使用_ 下劃線
例如:work_parent
十、 SSM專案拆分演示
使用Maven可以把以前專案的顆粒度變粗。以前的一個包,在Maven中很方便的變成一個專案。這些都是利用Maven的POM特性。
把以前的一個專案按照包拆分成下面四個專案。
pojo
mapper
service
controller
利用聚合專案演示,拆分過程略。
附:資源拷貝外掛

<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>

十一、 熱部署
熱部署是Maven中tomcat外掛實現的功能。可以實現一鍵把專案部署到伺服器的tomcat中。部署的前提要求知道tomcat/webapps下manager專案訪問的使用者名稱和密碼,tomcat預設是沒有,所以進行配置。
1 配置tomcat中manager專案的使用者名稱和密碼步驟
在tomcat/confg/tomcat-users.xml中<tomcat-users>裡面新增

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="admin-gui,admin-script,manager-gui,manager-script"/>

重啟tomcat後通過瀏覽器位址列訪問ROOT專案
http://ip:8080/
彈出登入框輸入,使用者名稱tomcat,密碼tomcat,進入manager專案就說明配置成功了

2 配置tomcat外掛
在專案的pom.xml中tomcat外掛部分額外新增屬性。
對於部署專案時
<port>無意義的。
<path>部署專案名
<url>最後的控制器是text

<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8081</port>
<!-- 釋出到tomcat名稱 -->
<path>/abc</path>
<username>tomcat</username>
<password>tomcat</password>
<url>http://192.168.8.128:8080/manager/text</url>
</configuration>
</plugin>
</plugins>
</build>

點選IDEA右側MAVEN --> plugins --> tomcat7
判斷配置時path設定的專案名是否在tomcat/webapps存在。
如果不存在tomcat7:deploy
如果存在tomcat7:redeploy