maven学习记录
2017-07-16 00:00
162 查看
1,maven环境搭建:
以前是在断网办公环境开发,这边用maven。
下载maven,配置maven环境变量MAVEN_HOME,path设置到对应bin目录;
mvn -v命令查看
maven conf目录setting添加国内源:
设置本地仓库:
eclipse集成maven,新版本eclipse已默认集成。
右键工程,config下convert to maven project。
建立pom.xml,自动更新对应依赖包。
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版本以下:
maven3.0.5版本以上:
4,maven编译:
5,maven打包
mvn clean package -P spark-yarn -Dmaven.skipTests
6,maven profile
首先先理解一个词:pom:(project object model),也就是pom.xml,maven对工程对象的描述。profile:在什么情况下,做什么,构建什么模块。使用方式:1,命令行中用-p参数;2,配置 pom.xml 文件
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
以前是在断网办公环境开发,这边用maven。
下载maven,配置maven环境变量MAVEN_HOME,path设置到对应bin目录;
mvn -v命令查看
maven conf目录setting添加国内源:
<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。
建立pom.xml,自动更新对应依赖包。
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
相关文章推荐
- 学习Maven记录
- maven学习记录
- Maven学习记录4——Maven管理多模块项目
- Maven——快速入门手册(学习记录)
- maven学习记录
- Maven学习(十六)--Maven知识点记录 - profile
- Maven学习:部分常见问题记录
- maven学习记录
- memcached tomcat maven 学习记录
- Maven学习记录(三)--实战引入Spring支持
- JavaWEB学习记录--Jenkins自动部署Maven项目
- maven的学习记录
- maven学习过程记录--依赖1
- Maven学习记录3——创建、编译、打包、运行项目
- Maven——快速入门手册(学习记录)
- Maven学习记录(四)--多模块开发配置
- Maven学习记录(1)
- Maven学习记录(一)--IDEA下环境配置
- Maven学习记录