mevan 的常用命令和参数解释
簡(jiǎn)介
Maven是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。當(dāng)你使用Maven的時(shí)候,你用一個(gè)明確定義的項(xiàng)目對(duì)象模型來(lái)描述你的項(xiàng)目,然后Maven可以應(yīng)用橫切的邏輯,這些邏輯來(lái)自一組共享的(或者自定義的)插件。
Maven 有一個(gè)生命周期,當(dāng)你運(yùn)行 mvn install 的時(shí)候被調(diào)用。這條命令告訴 Maven 執(zhí)行一系列的有序的步驟,直到到達(dá)你指定的生命周期。遍歷生命周期旅途中的一個(gè)影響就是,Maven 運(yùn)行了許多默認(rèn)的插件目標(biāo),這些目標(biāo)完成了像編譯和創(chuàng)建一個(gè) JAR 文件這樣的工作。
后來(lái)遇到的錯(cuò)誤
當(dāng)文件pom文件第一行 錯(cuò)誤
==org.apache.maven.plugin.war.WarMojo ==
解決方法
mevan常用命令
mvn archetype:generate 創(chuàng)建Maven項(xiàng)目mvn compile 編譯源代碼
mvn deploy 發(fā)布項(xiàng)目
mvn test-compile 編譯測(cè)試源代碼
mvn test 運(yùn)行應(yīng)用程序中的單元測(cè)試
mvn site 生成項(xiàng)目相關(guān)信息的網(wǎng)站
mvn clean 清除項(xiàng)目目錄中的生成結(jié)果
mvn package 根據(jù)項(xiàng)目生成的jar
mvn install 在本地Repository中安裝jar
mvn eclipse:eclipse 生成eclipse項(xiàng)目文件
mvnjetty:run 啟動(dòng)jetty服務(wù)
mvntomcat:run 啟動(dòng)tomcat服務(wù)
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳過(guò)測(cè)試類
mevan工程結(jié)構(gòu)
工程名-> src->main (放運(yùn)行文件)->java(放java文件)->resources(放入外部資源文件)-> test(放測(cè)試文件)為啥遵守meavan的工程結(jié)構(gòu)
mevan負(fù)責(zé)構(gòu)建這個(gè)項(xiàng)目的自動(dòng)化構(gòu)建 他必須知道java源文件在哪里
我們自己自定義的東西明確要讓mevan知道
用配置的方法明確告訴框架你
遵守框架內(nèi)部的約定
依賴
依賴的傳遞性
好處可以傳遞的依賴不比在每個(gè)模塊中都重復(fù)聲明 在最下面的 工程添加一個(gè)依賴就行了
注意 非 compile范圍的依賴不可以傳遞 所以在各個(gè)工程模塊中需要一個(gè)個(gè)聲明
依賴的排除(通常是自動(dòng)導(dǎo)入的依賴jar 包 他不是穩(wěn)定版本我們工程不想用它)
依賴的原則
1 就近者有限 傳遞的越近越優(yōu)先
2通距離這 先聲明的優(yōu)先
統(tǒng)一管理依賴
1 手動(dòng)配置
2使用properties 配置參數(shù)
讀取參數(shù)
繼承
①創(chuàng)建Parent工程,打包方式為pom
②收集所有非compile范圍的依賴信息,使用dependencyManagement標(biāo)簽統(tǒng)一管理
③在各個(gè)子工程中引用父工程
<parent><groupId>com.atguigu.maven</groupId><artifactId>Parent</artifactId><version>0.0.1-SNAPSHOT</version><!-- 以當(dāng)前文件為基準(zhǔn)查找父工程中pom.xml文件的相對(duì)路徑 --><relativePath>../Parent/pom.xml</relativePath></parent>④刪除子工程中的重復(fù)信息
groupId
artifactid
⑤在子工程中找到被父工程管理的依賴信息,刪除版本號(hào)部分
⑥在父工程中統(tǒng)一修改已管理的依賴信息的版好、版本號(hào),看是否能夠控制所有子工程
.聚合
在總的聚合工程中加入如下信息 這個(gè)聚合工程可以在父類
<modules><module>../Hello</module><module>../HelloFriend</module><module>../MakeFriends</module></modules> 在總的聚合工程中加入如下信息 <modules><module>../Hello</module><module>../HelloFriend</module><module>../MakeFriends</module> </modules>尚硅谷教程
1.解壓部署Maven核心程序
①檢查JAVA_HOME環(huán)境變量
C:\Windows\System32>echo %JAVA_HOME%
D:\DevInstall\jdk1.7.0_07
②解壓Maven的核心程序
將apache-maven-3.2.2-bin.zip解壓到一個(gè)非中文無(wú)空格的目錄下。例如:D:\DevInstall\apache-maven-3.2.2
③配置環(huán)境變量
M2_HOME D:\DevInstall\apache-maven-3.2.2
path D:\DevInstall\apache-maven-3.2.2\bin
④查看Maven版本信息驗(yàn)證安裝是否正確
C:\Windows\System32>mvn -v
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T21:51:42+08:00)
Maven home: D:\DevInstall\apache-maven-3.2.2\bin…
Java version: 1.7.0_07, vendor: Oracle Corporation
Java home: D:\DevInstall\jdk1.7.0_07\jre
Default locale: zh_CN, platform encoding: GBK
OS name: “windows 7”, version: “6.1”, arch: “amd64”, family: “windows”
2.修改本地倉(cāng)庫(kù)
①默認(rèn)本地倉(cāng)庫(kù)位置:~.m2\repository
~表示當(dāng)前用戶的家目錄,例如:C:\Users[你當(dāng)前登錄系統(tǒng)的用戶名]
②指定本地倉(cāng)庫(kù)位置的配置信息文件:apache-maven-3.2.2\conf\settings.xml
③在根標(biāo)簽settings下添加如下內(nèi)容:[本地倉(cāng)庫(kù)路徑,也就是RepMaven.zip的解壓目錄](méi)
3.第一個(gè)Maven工程
①目錄結(jié)構(gòu)
Hello
|—src
|—|---main
|—|---|—java
|—|---|—resources
|—|---test
|—|---|—java
|—|---|—resources
|—pom.xml
5.第三個(gè)Maven工程
①設(shè)置通過(guò)Maven創(chuàng)建的工程的JDK版本——一勞永逸
[1]打開(kāi)settings.xml文件
[2]找到profiles標(biāo)簽
[3]加入如下配置
jdk-1.7
true
1.7
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
②工程坐標(biāo)
groupId:com.atguigu.maven
ArtifactId:MakeFriends
Package:com.atguigu.maven
③在src/main/java中新建類com.atguigu.maven.MakeFriends
public String makeFriends(String name){
HelloFriend friend = new HelloFriend();
friend.sayHelloToFriend(“l(fā)itingwei”);
String str = “Hey,”+friend.getMyName()+" make a friend please.";
System.out.println(str);
return str;
}
④在src/test/java中新建類com.atguigu.maven.MakeFriendsTest
package com.atguigu.maven;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
public class MakeFriendsTest {
@Test
public void testMakeFriends(){
MakeFriends makeFriend = new MakeFriends();
String str = makeFriend.makeFriends(“l(fā)itingwei”);
assertEquals(“Hey,John make a friend please.”,str);
}
}
⑤添加依賴信息
junit
junit
4.9
test
com.atguigu.maven
HelloFriend
0.0.1-SNAPSHOT
jar
compile
⑥在Eclipse環(huán)境下執(zhí)行Maven命令:右擊pom.xml選擇run as 中的命令執(zhí)行即可
6.測(cè)試依賴的范圍對(duì)傳遞性的影響
①在Hello中添加對(duì)spring-core的依賴
org.springframework
spring-core
4.0.0.RELEASE
compile
②在HelloFriend中查看spring-core是否被加入了運(yùn)行時(shí)環(huán)境
③將Hello中對(duì)spring-core的依賴范圍修改為test,再到HelloFriend中檢查
④將Hello中對(duì)spring-core的依賴范圍修改為provided,再到HelloFriend中檢查
⑤結(jié)論:非compile范圍的依賴不能傳遞,必須在有需要的工程中單獨(dú)加入
7.測(cè)試依賴原則
①路徑最短者優(yōu)先
[1]在Hello中依賴log4j-1.2.17
log4j
log4j
1.2.17
8.創(chuàng)建Web工程
①ServletAPI依賴
javax.servlet
servlet-api
2.5
provided
②JSPAPI依賴
javax.servlet.jsp
jsp-api
2.1.3-b06
provided
9.Web工程自動(dòng)部署
AtguiguWeb
org.codehaus.cargo
cargo-maven2-plugin
1.2.3
tomcat6x
D:\DevInstall\apache-tomcat-6.0.39
existing
D:\DevInstall\apache-tomcat-6.0.39
<cargo.servlet.port>8989</cargo.servlet.port>
cargo-run
install
run
10.繼承
①創(chuàng)建Parent工程,打包方式為pom
②收集所有非compile范圍的依賴信息,使用dependencyManagement標(biāo)簽統(tǒng)一管理
junit
junit
4.9
test
③在各個(gè)子工程中引用父工程
com.atguigu.maven
Parent
0.0.1-SNAPSHOT
11.聚合
在總的聚合工程中加入如下信息
…/Hello
…/HelloFriend
…/MakeFriends
總結(jié)
以上是生活随笔為你收集整理的mevan 的常用命令和参数解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第6天:分割处理与中断处理
- 下一篇: 数据导入与预处理实验二---json格式