mvn施用详解
mvn使用详解
Maven环境变量配置: 变量名:M2_HOME 变量值:D:\bin\apache-maven-2.2.1 (安装路径) 在path值后面追加 %M2_HOME%\bin; (注意要加分号) 测试: Mvn –version maven常用命令为 : mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码 mvn test-compile :编译测试代码 mvn test : 运行应用程序中的单元测试 mvn site : 生成项目相关信息的网站 mvn clean :清除目标目录中的生成结果 mvn package : 依据项目生成 jar 文件 mvn install :在本地 Repository 中安装 jar mvn eclipse:eclipse :生成 Eclipse 项目文件 生成项目 建一个 JAVA 项目 : mvn archetype:create -DgroupId=com.demo -DartifactId=App 建一个 web 项目 : mvn archetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp archetype 是一个内建插件,他的create任务将建立项目骨架 archetypeArtifactId项目骨架的类型,DartifactId 项目名称 可用项目骨架有: maven-archetype-archetype maven-archetype-j2ee-simple maven-archetype-mojo maven-archetype-portlet maven-archetype-profiles maven-archetype-quickstart maven-archetype-simple maven-archetype-site maven-archetype-site-simple, and maven-archetype-webapp ------------------------------------------------------ Setting.xml 配置文件 localRepository:本地库存位置,jar包保存位置,默认${user.dir}/.m2/repository offline: true/false,如不想每次编译都去查找远程中心库,就设置为true,前提是已下载好包 Servers:配置特定的用户 <servers> <server> <id/><username/><password/><privatekey/><pssphrase/> <filePermissions/><directoryPermissions/><configuration/> </server> </servers> id:用于匹配distributionManagement库id username,password:用于登陆此服务器的用户名和密码 privateKey,passphrase:设置private Key,及passphrase filePermissions,directoryPermissions:访问权限664/775 mirrosrs:镜像库,用于添加其他库 <mirrors> <miror> <id/><name/><url/><mirroOf/> </mirror> </mirrors> id,name:唯一的标志,用来区别镜像 url:镜像的url mirrorOf:此镜像指向的服务id Proxies:代理设置,用于无法直接访问中心库的配置 <proxies> <proxy> <id/><active/><protocol/><host/><port/><username/><password/><nonProxyHosts/> </proxy> </proxies> id:代理的标志 active:是否激活代理 protocol,host,port:protocol://host:port代理 username,password:用户名密码 nonProxyHosts:不需要代理的host repositories和pluginRepositonries定义本地开发库 用于release发布 <repositories> <repository> <id/><name/><url/> <releases> <enabled/><updatePolicy/><checksumPolicy/> </releases> <snapshots> <enabled/> </snapshots> <layout/> </repository> </repositories> ----------------------------------------------------------- Pom.xml 配置文件 在pom.xml中定义jar包版本还有依赖,管理jar文件。 包括配置文件;开发需要遵循的规则,缺陷管理系统,组织和licenses,项目的依赖性 groupId:项目或组织唯一标志,并生成项目路径 artifactId:项目名称 version:项目版本 packaging:打包的机制,如jar,pom,war.... maven中继承的定义 <project> <modelVersion/><groupId/><version/><packaging/> </project> 父项目packaging类型需要为pom,用于parent和合成多个项目,子项目为 <parent> <groupId/><artifctId/><version/> </parent> Modules合成 <modules> <module>tc-dient</moduble> <module>tc-server</module> </modules> build设置:用于编译设置,包括两个主要元素,build,report <project> <project> <build/> <profies> <profile> <build/> </profile> </profies> </profiles> </project> build-plugin插件 <project> <build> ..... <plugins> <plugin> <groupId/><artifactId/><version/> <extensions/><executions/> </plugin> </plugins> </build> </project> extensions:true/false 是否装载插件扩展,默认为false inherited:true/false 此插件配置是否应用于poms(继承) configuration:指定插件配置 dependencies:插件需要依赖的包 executions:用于配置execution目标,一个插件可以有多个目标 build-resources资源,项目中需要指定的资源如:log4j.properties <project> <build> <resources> <resource> <targetPath/><filtering/><directory/> <includes> <include/> </includes> <excludes> <exclude/> </excludes> </resource> </resources> <testResources> ... </testResources> .... </build> </project> resources:列表,包括所有的资源 targetPath:指定目标路径,用于放置资源,用于build filtering:是否替换资源中属性placehold directory:资源所在的位置 includes:样式,包括资源 excludes:排除的资源 testResources:测试资源列表 dependencies:依赖关系 <dependencies> <dependency> <groupId/><artifactId/><version/> <type/><scope/><optional/> </dependency> </dependencies> groupId,artifactId,version:描述了依赖的项目唯一标志 使用以下的命令安装: mvn install:install-file –Dfile=non-maven-proj.jar –DgroupId=some.group –DartifactId=non-maven-proj –Dversion=1 创建自己的库,并配置,使用deploy:deploy-file 设置此依赖范围为system,定义一个系统路径。不提倡。 type:相应的依赖产品包形式,如jar,war scope:用于限制相应的依赖范围,包括以下的几种变量: compile:默认范围,用于编译 provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath runtime:在执行时,需要使用 test:用于test任务时使用 system:需要外在提供相应得元素。通过systemPath来取得 systemPath: 仅用于范围为system。提供相应的路径 optional: 标注可选,当项目自身也是依赖时。用于连续依赖时使用