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