1,maven環境搭建:html
之前是在斷網辦公環境開發,這邊用maven。apache
下載maven,配置maven環境變量MAVEN_HOME,path設置到對應bin目錄;eclipse
mvn -v命令查看maven
maven conf目錄setting添加國內源:ide
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
設置本地倉庫:測試
<localRepository>D:/source\===DevTool===\maven\mavenRepository</localRepository>
eclipse集成maven,新版本eclipse已默認集成。阿里雲
右鍵工程,config下convert to maven project。url
創建pom.xml,自動更新對應依賴包。spa
2,查找對應依賴包maven寫法。命令行
到遠程倉庫【nexus】查找包,好比阿里雲http://maven.aliyun.com/nexus/#welcome,輸入,查找對應jar包以及maven依賴。
3,mvn建立項目:
Could not find goal 'create' in plugin org.apache.maven.plugins。
create is deprecated in maven 3.0.5 and beyond,在maven3.0.5以上版本捨棄了create,使用generate生成項目
maven3.0.5版本如下:
mvn archetype:create -DgroupId=com.demo -DartifactId=dm
maven3.0.5版本以上:
mvn archetype:generate -DarchetypeCatalog=internal
4,maven編譯:
mvn compile
5,maven打包
mvn package : 依據項目生成 jar 文件
mvn clean package -P spark-yarn -Dmaven.skipTests
6,maven profile
首先先理解一個詞:pom:(project object model),也就是pom.xml,maven對工程對象的描述。profile:在什麼狀況下,作什麼,構建什麼模塊。使用方式:1,命令行中用-p參數;2,配置 pom.xml 文件
<profiles> <profile> <id>spark-yarn</id> <properties> <aaa.scope>provided</aaa.scope> </properties> </profile> </profiles>
7,maven scope
scope默認爲compile,也就是說這個項目在編譯,測試,運行階段都須要這個artifact對應的jar包在classpath中。而對於scope=provided的狀況,則能夠認爲這個provided是目標容器已經provide這個artifact。換句話說,它隻影響到編譯,測試階段。在編譯測試階段,咱們須要這個artifact對應的jar包在classpath中,而在運行階段,假定目標的容器(好比咱們這裏的liferay容器)已經提供了這個jar包,因此無需咱們這個artifact對應的jar包了。
scope能夠使用的五個值:
* compile,缺省值,適用於全部階段,會隨着項目一塊兒發佈。
* provided,相似compile,指望JDK、容器或使用者會提供這個依賴。如servlet.jar。
* runtime,只在運行時使用,如JDBC驅動,適用運行和測試階段。
* test,只在測試時使用,用於編譯和運行測試代碼。不會隨項目發佈。
* system,相似provided,須要顯式提供包含依賴的jar,Maven不會在Repository中查找它。
參考博文:
http://www.cnblogs.com/hongwz/p/5456578.html
http://www.cnblogs.com/holly/archive/2013/06/15/3137041.html