[maven] 使用问题及思考汇总
?
?
(1)Maven坐標(biāo)
maven坐標(biāo)可以唯一標(biāo)識(shí)一個(gè)項(xiàng)目,包含四個(gè)元素 groupId , artifactId, packaging, version。
groupId:一般為團(tuán)體,公司,項(xiàng)目。如 oceanic-web, oceanic-dal, oceanic-biz 同屬一個(gè) groupId。 artifactId:在 groupId 下的表示一個(gè)單獨(dú)項(xiàng)目的唯一標(biāo)識(shí)符。項(xiàng)目名稱ID/模塊名稱 。 packaging:標(biāo)識(shí)項(xiàng)目的類型,如 jar,war,pom 等。 version:版本號(hào)。
例子:
oceanic -web的坐標(biāo)定義如下: groupId: com.oceanic.framework artifactId:oceanic-web packaging: war version:0.0.1-SNAPSHOToceanic -dal的坐標(biāo)定義如下: groupId: com.oceanic.framework artifactId:oceanic-dal packaging: jar version:0.0.1-SNAPSHOToceanic -biz的坐標(biāo)定義如下: groupId: com.oceanic.framework artifactId:oceanic-biz packaging: jar version:0.0.1-SNAPSHOT
?
(2)下載的依賴jar包的存放路徑
/groupId/artifactId/version/artifactId-version.packaging
?
(3)在eclipse里配置指向的settings文件
preference -> Maven -> User Settings -> 選擇待導(dǎo)入的settings文件 ->Apply
?
(4)解決“Dynamic Web Module 3.0 requires Java 1.6 or newer.”錯(cuò)誤
設(shè)置Java Compiler為1.7,同時(shí)在項(xiàng)目的pom.xml的<build></build>標(biāo)簽中加入:
<plugins>?
??? <plugin>?
??????? <groupId>org.apache.maven.plugins</groupId>?
??????? <artifactId>maven-compiler-plugin</artifactId>?
??????? <version>2.3.2</version>?
??????? <configuration>?
??????????? <source>1.7</source>?
??????????? <target>1.7</target>?
??????? </configuration>?
??? </plugin>?
</plugins>
?
(5)全部配置和自定義配置
Maven安裝目錄的conf子目錄下面的settings.xml是全局配置。
用戶家目錄的.m2子目錄下面的settings.xml的配置只是針對(duì)當(dāng)前用戶的。這個(gè)文件一般是不存在的,但是Maven允許我們?cè)谶@里定義我們自己的settings.xml,如果需要在這里定義我們自己的settings.xml的時(shí)候就可以把Maven安裝目錄下面的settings.xml文件拷貝到用戶家目錄的.m2目錄下,然后改成自己想要的樣子。這樣,自定義的配置會(huì)覆蓋全局配置作為maven的配置文件來使用。
?
(6)dependencies 和?dependencyManagement ?的區(qū)別
dependencies
即使在子項(xiàng)目中不寫該依賴項(xiàng),那么子項(xiàng)目仍然會(huì)從父項(xiàng)目中繼承該依賴項(xiàng)。
dependencyManagement ?
如果在子項(xiàng)目中不寫該依賴項(xiàng),那么子項(xiàng)目中是不會(huì)從父項(xiàng)目繼承該依賴項(xiàng)的;只有在子項(xiàng)目中寫了該依賴項(xiàng),才會(huì)從父項(xiàng)目中繼承該項(xiàng),并且version 和 scope 都讀取自 父pom。
?
(7)子模塊parent節(jié)點(diǎn)下的<relativePath/> 節(jié)點(diǎn)是什么含義?
表示父項(xiàng)目的pom.xml文件的相對(duì)路徑。默認(rèn)值是../pom.xml。
查找順序:
首先在構(gòu)建當(dāng)前項(xiàng)目的地方尋找父項(xiàng)目的pom
其次在文件系統(tǒng)的指定位置(relativePath)
然后在本地倉庫
最后在遠(yuǎn)程倉庫尋找父項(xiàng)目的pom
?
(8)dependencies ?VS ?dependencyManagement?
?maven中的 dependencies 和 dependencyManagement 的區(qū)別 :前者,即使在子項(xiàng)目中不寫該依賴項(xiàng),那么子項(xiàng)目仍然會(huì)從父項(xiàng)目中繼承該依賴項(xiàng)。后者,如果在子項(xiàng)目中不寫該依賴項(xiàng),那么子項(xiàng)目中是不會(huì)從父項(xiàng)目繼承該依賴項(xiàng)的;只有在子項(xiàng)目中寫了該依賴項(xiàng),才會(huì)從父項(xiàng)目中繼承該項(xiàng),并且version 和 scope 都讀取自 父pom。
?
博客:
Maven學(xué)習(xí)總結(jié)(八)——使用Maven構(gòu)建多模塊項(xiàng)目
在Eclipse中創(chuàng)建Maven多模塊工程的例子
?
轉(zhuǎn)載于:https://www.cnblogs.com/avivaye/p/5336658.html
總結(jié)
以上是生活随笔為你收集整理的[maven] 使用问题及思考汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++拾遗(五)语句相关
- 下一篇: PS切图篇(一)---界面设置