Maven學習筆記

Maven學習筆記
 
目錄
1、環境配置
2、修改倉庫位置
3、建立Maven項目
4、編譯項目代碼
5、導入到eclipse中
6、包的更新與下載
7、建立一個Web項目
八.使用Jetty
9、建立一個代理倉庫
10、maven項目在eclipse中調試--tomcat
11、maven項目在eclipse中調試--jetty
12、建立多模塊項目
十3、完整可用的pom.xml
十4、使用SpringSide4
 
 
1、環境配置
1.下載  http://maven.apache.org/download.cgi 並解壓到電腦 D:\Apache\maven-3.1.1
 
2.配置環境變量 
a.建立用戶變量:
變量名:M2_HOME
變量值:D:\Apache\maven-3.1.1
b.而後在Path中加入;%M2_HOME%\bin;
 
3.驗證是否成功安裝
mvn -v
 
2、修改倉庫位置
倉庫用於存放咱們項目所依賴的全部jar包。不修改使用默認地址也能夠。
默認地址是:~/.m2/repository  windows環境下地址就是 C:\Users\huligong\.m2\repository
 
修改D:\Apache\maven-3.1.1\conf\settings.xml中的<localRepository>D:/maven/repo</localRepository>
 
 
3、建立Maven項目
D:\pub> mvn archetype:create -DgroupId=com.jeedev.myproj -DartifactId=myproj -DpackageName=com.jeedev .myproj -Dversion=1.0
 
新的方式(mvn的archetype插件提供一種從現有項目生成archetype的功能):
D:\pub> mvn archetype:generate -DgroupId=com.jeedev.myproj -DartifactId=myproj -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
 
 
查看生成的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.jeedev.myproj</groupId>
  <artifactId>myproj</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>
 
  <name>myproj</name>
  <url>http://maven.apache.org</url>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
 
 
說明:
project:pom.xml文件中的頂層元素;
modelVersion:指明POM使用的對象模型的版本。這個值不多改動。
groupId:指明建立項目的組織或者小組的惟一標識。GroupId是項目的關鍵標識,典型的,此標識以組織的徹底限定名來定義。好比,org.apache.maven.plugins是全部Maven插件項目指定的groupId。
artifactId:指明此項目產生的主要產品的基本名稱。項目的主要產品一般爲一個JAR文件。第二,象源代碼包一般使用artifactId做爲最後名稱的一部分。典型的產品名稱使用這個格式: <artifactId>- <version>. <extension>(好比:myapp-1.0.jar)。
version:項目產品的版本號。Maven幫助你管理版本,能夠常常看到SNAPSHOT這個版本,代表項目處於開發階段。
name:項目的顯示名稱,一般用於maven產生的文檔中。
url:指定項目站點,一般用於maven產生的文檔中。
description:描述此項目,一般用於maven產生的文檔中。
 
對於一個項目中只有下面的一部分是是咱們須要關注的:
<groupId>com.jeedev.myproj</groupId>
<artifactId>myproj</artifactId>
<version>1.0</version>
 
 
4、編譯項目代碼
進入項目目錄執行 
D:\pub\myproj> mvn clean compile 
clean 告訴maven清理輸入出目錄target/,compile告訴maven編譯項目主代碼。
 
將項目結構轉成eclipse支持項目結構,使之能夠導入到eclipse中:
D:\pub\myproj> mvn eclipse:eclipse
 
經常使用命令
mvn clean compile -U  package -Dmaven.test.skip=true
 
部署第三方jar到本地倉庫
mvn install:install-file  -Dfile=D:/mywork/thirdparty-libs/jeedev-commons-1.0.0.jar  -DgroupId=org.jeedevframework.commons  -DartifactId=jeedevframework-commons -Dversion=1.0.0 -Dpackaging=jar
 
部署第三方jar到遠程倉庫
mvn deploy:deploy-file -Dfile=D:/mywork/thirdparty-libs/wechat4j-1.3.1.jar  -DgroupId=org.sword.wechat4j  -DartifactId=sword-wechat4j -Dversion=1.3.1 -Dpackaging=jar -Durl=http://maven.domain.cn/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
(備註:需配置settings.xml)
 
發佈到本地和遠程倉庫
mvn clean install deploy
 
 
指定pom.xml
mvn clean compile package -Dmaven.test.skip=true -f pom_war.xml

mvn clean deploy -f pom_jar.xmlhtml

 
 
5、導入到eclipse中
1.打開eclipse,先配置maven倉庫路徑
Window----Perferences-----java-----Build Path-----Classpath Variables
New一個變量的類路徑。
Name:M2_REPO
Path:C:\Users\huligong\.m2\repository
 
2.在eclipse中導入剛建立的項目myproj
 
6、包的更新與下載
Maven  中央倉庫地址: http://search.maven.org
 
格式:
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
      <optional>true</optional>
    </dependency>
 
更改後從新執行:mvn eclipse:eclipse  
 
 
 
 
 
 
其餘命令:
validate:驗證工程是否正確,全部須要的資源是否可用。
compile:編譯項目的源代碼。
test:使用合適的單元測試框架來測試已編譯的源代碼。這些測試不須要已打包和佈署。
Package:把已編譯的代碼打包成可發佈的格式,好比jar。
integration-test:若有須要,將包處理和發佈到一個可以進行集成測試的環境。
verify:運行全部檢查,驗證包是否有效且達到質量標準。
install:把包安裝在本地的repository中,能夠被其餘工程做爲依賴來使用。
Deploy:在集成或者發佈環境下執行,將最終版本的包拷貝到遠程的repository,使得其餘的開發者或者工程能夠共享。
clean:清除先前構建的artifacts(在maven中,把由項目生成的包都叫做artifact)。
site:爲項目生成文檔站點。 
-Dmaven.test.skip=true 跳過單元測試
 
mvn clean dependency:copy-dependencies package
這個命令將先清除項目,而後拷貝依賴,最後把項目打包
 

mvn -f xxx.xml能夠指定pom文件進行構建。java

mvn -s /path/to/user/my-settings.xml 指定settings文件git

mvn dependency:purge-local-repository 刪除本地倉庫github

分析jar包依賴關係web

mvn dependency:analyzespring

mvn dependency:treeapache

 

mvn dependency:tree > tree.txtwindows

mvn dependency:tree -Dverbose -Dincludes=org.elasticsearch > tree.txttomcat

 
7、建立一個Web項目
 
比普通項目多加一個參數DarchetypeArtifactId ,命令以下:
 
D:\pub>mvn archetype:generate -DgroupId=com.jeedev.mywebproj -DartifactId=mywebproj -DarchetypeArtif actId=maven-archetype-webapp -Dversion=1.0
 
而後在項目目錄下執行mvn eclipse:eclipse便可。
 
 
八.使用Jetty
 
http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin 
 
在上一節七的基礎上,修改pom.xml
 
  <build>
    <finalName>mywebproj</finalName>
    <plugins>
             <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>7.0.0.pre5</version>
            </plugin>
        </plugins>
  </build>
 
而後再項目下執行 D:\pub\mywebproj>mvn jetty:run
就默認啓動端口爲8080的server了,訪問 http://localhost:8080/mywebproj/ 就能看到hello world了。
 
一個可參考的配置:
  <build>
    <finalName>mywebproj</finalName>
    <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>7.0.0.pre5</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <stopKey>foo</stopKey>
                    <stopPort>9999</stopPort>
                </configuration>
                <executions>
                    <execution>
                        <id>start-jetty</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <scanIntervalSeconds>0</scanIntervalSeconds>
                            <daemon>true</daemon>
                        </configuration>
                    </execution>
                    <execution>
                        <id>stop-jetty</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>stop</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
  </build>
 
 
9、建立一個代理倉庫
 
 
10、maven項目在eclipse中調試--tomcat
 
 
11、maven項目在eclipse中調試--jetty
 
 
12、建立多模塊項目
 
 
十3、完整可用的pom.xml
1.SpringMVC+Spring+Ibatis+MySQL
2.SpringMVC+Spring+Hibernate+MySQL
3.Struts2+Spring+Hibernate+MySQL
 
十4、使用SpringSide4
http://www.cnblogs.com/heshan664754022/p/3255557.html  如何將Springside4項目轉成Eclipse項目
 
 
十五:修改版本號
mvn versions:set -DnewVersion=2.1.0-SNAPSHOT
mvn versions:commit
mvn versions:revert
 

相關參數說明app

參數 默認值 說明
allowSnapshots false 是否更新-snapshot快照版
artifactId ${project.artifactId} 指定artifactId
generateBackupPoms true 是否備份pom文件
groupId ${project.groupId} 指定groupId
newVersion   設置的新版本號
nextSnapshot false 更新版本號爲下一個快照版本號
oldVersion ${project.version} 指定須要更新的版本號可使用缺省‘*'
processAllModules false 是否更新目錄下全部模塊不管是否聲明父子節點
processDependencies true 是否更新依賴其的版本號
processParent true 是否更新父節點的版本號
processPlugins true 是否更新插件中的版本號
processProject true 是否更新模塊自身的版本號
removeSnapshot false 移除snapshot快照版本,使之爲release穩定版
updateMatchingVersions true 是否更新在子模塊中顯式指定的匹配版本(如/項目/版本)。

參考 versions-maven-plugin 命令介紹

 
 
參考:
http://www.cnblogs.com/fnng/archive/2011/12/16/2290587.html   Maven 環境快速搭建二(eclipse+maven2+jetty)
http://trinea.iteye.com/blog/1290898   maven用途、核心概念、用法、經常使用參數和命令、擴展
http://www.blogjava.net/alwayscy/archive/2007/05/19/118584.html    天生一對"Maven2+Jetty" -- Maven2建立並管理WebApp,並使用Maven Jetty Plugin在Eclipse中調試
 
 

http://aijezdm915.iteye.com/blog/1335025 maven Nexus入門指南(圖文)

http://blog.csdn.net/wang379275614/article/details/43940259/  Maven倉庫—Nexus環境搭建及簡單介紹

http://121088825.iteye.com/blog/2337515  速度很快的 Maven 遠程倉庫(阿里雲 nexus 倉庫)

相關文章
相關標籤/搜索