Maven 学习
来源:互联网 发布:大华网络监控安装步骤 编辑:程序博客网 时间:2024/06/06 04:56
maven pom.xml 标签详解:http://blog.csdn.net/sunzhenhua0608/article/details/32938533
Maven多模块项目管理小结:http://blog.csdn.net/whuslei/article/details/7989102
尚硅谷视频笔记
maven核心:
1》约定的目录结构 2》POM 3》坐标 4》依赖管理 5》仓库管理 6》生命周期 7》插件和目标 8》继承 9》聚合
结构:
hello:根目录,工程名
——src:源码
————main:主程序
——————java:java源文件
————————resources:框架或者其他工具的配置文件
————test:测试主程序
——————java
————————resources
——pom.xml:Maven核心配置文件
常用命令
mvn clean:清理
mvn compile:编译
mvntest-compile:测试编译
mvntest:测试
mvnpackage:打包(把jar打到本项目的target下)
mvn install:安装(把打出的包装载到本地仓库)
mvn site:生成站点
坐标:Maven使用三个向量在仓库中唯一定位一个Maven工程
1》groupid:公司或组织域名的倒叙+项目名
<groupid>com.baidu.maven</groupid>
2》artifactid:模块名
<artifactid>TestMaven</artifactid>
3》version:版本
<version>1.0.0</version>
打包方式:也可以不写,但创建时肯定需要指定
<packaging>jar</packaging>
Maven工程与仓库路径的对应关系
com/baidu.maven/TestMaven/1.0.0
仓库:
本地仓库:当前电脑上的仓库。
私服:搭建在局域网中,Nexus。
中央仓库:为全世界服务。
镜像库:为亚洲服务,加快访问速度。
依赖:
<dependency><groupid>com.baidu.maven</groupid><artifactid>TestMaven</artifactid><version>1.0.0</version><scope>compile</scope></dependency>
maven解析依赖信息时,会去本地仓库找依赖的jar包。
我们自己开发的maven工程,使用install命令即可安装到本地库
依赖域:scop
compile范围依赖:主程序有效,测试有效,打包有效,参与部署 spring-core
test范围依赖:测试程序有效。对主程序无效,不参与打包,不参与部署 如junit
provided范围依赖:主程序有效,测试程序有效,不参与打包、部署 如servlet-api(用成编译会出现冲突)
eclipse中使用maven:
1修改成自行解压安装的maven. 在eclipse的Preferences-Maven-Installations 选择
2指定user settings:conf/settings.xml文件 方便修改本地库的位置。
3默认创建的maven项目使用的jre是偏低的版本
打开settings.xml文件,找到profiles标签
<profile> <id>jdk-1.7</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion> </properties> </profile>
创建maven工程步骤:New--New Maven Project--勾选Create a simple project(skip archetype selection)--填写Group Id、Artifact Id、Packageing(默认jar)
区分web工程的地方:创建时选择打包方式:war
项目属性:找到Project Facets--Dynamic Web Module 2.5(取消勾选 再选中,等于转换成了web工程)
pom.xml错误:An error occurred while filtering resources。确保xml文件中其他错误被修正时,可以使用 mvn -clean 清除掉项目上的×
导入手动建立的Maven:Import -- Existing Maven Projects--选择文件夹 --Finish即可
导入其他项目为依赖,编译之前需要先进行安装
<dependency> <groupId>com.baidu.maven</groupId> <artifactId>TestMaven</artifactId> <version>0.0.1-SNAPSHOT</version> <type>jar</type> <scope>compile</scope></dependency>
依赖的传递:最底层的被依赖项目中的pom所需要的jar包,如果设定域为:compile会传递,test本包可用,provided本包可用
依赖的排除:从当前项目开始生效,后续项目如果依赖当前项目,排除都有效。
<exclusions><exclusion><groupId>com.baidu.maven</groupId><artifactId>TestMaven</artifactId></exclusion></exclusions>
依赖的原则:多个依赖版本不同时,路径最短者优先,取最近的项目依赖的版本
路径相同时:如两个项目同时依赖进来,先声明者优先,指的是dependency的顺序
统一管理依赖的版本:
properties标签内使用自定义标签统一声明版本号,在需要统一版本的位置,使用${自定义标签名}
<properties>
<baidu.spring.version>4.0.0</baidu.spring.version>
</properties>
<properties>标签还可以用作别的声明,不仅仅是版本号。
继承:
方便统一管理各个模块工程中的依赖,将所有依赖提取到”父“工程中,在子工程中依赖时不指定版本。
步骤
1》创建一个Maven工程作为父工程。注意:打包的方式pom
2》在子工程中生命对父工程的引用
3》将子工程的坐标与父工程坐标中重复的内容删除
4》在父工程中同意一路的版本
5》在子工程中删除依赖的版本号部分
<parent><groupId>com.baidu.maven</groupId><artifactId>Parent</artifactId><version>0.0.1-SNAPSHOT</version><!-- 以当前文件为基准查找父工程中pom.xml文件的相对路径 --><relativePath>../Parent/pom.xml</relativePath></parent>
父工程中<dependencyManagement>标签下配置要统一的依赖<dependencys>...</dependencys>
聚合:
多个项目需要一个一个安装,单个项目安装时需要先安装父工程
作用:一键安装各个模块工程。
<modules>
<module>../TestMaven(也可以填写工程pom文件中的artifactId)</module>
</modules>
以后只要操作该聚合项目即可
Web工程自动部署
deploy:将最终的包赋值到远程库,让其他开发人员和项目共享,或者部署到服务器上运行。
不常用,配置如下:
<build><finalName>AtguiguWeb</finalName><plugins><plugin><groupId>org.codehaus.cargo</groupId><artifactId>cargo-maven2-plugin</artifactId><version>1.2.3</version><configuration><container><containerId>tomcat6x</containerId><home>D:\DevInstall\apache-tomcat-6.0.39</home></container><configuration><type>existing</type><home>D:\DevInstall\apache-tomcat-6.0.39</home><!-- 如果Tomcat端口为默认值8080则不必设置该属性 --><properties><cargo.servlet.port>8989</cargo.servlet.port></properties></configuration></configuration><executions><execution><id>cargo-run</id><phase>install</phase><goals><goal>run</goal></goals></execution></executions></plugin></plugins></build>
查找依赖信息的网站:
http://mvnrepository.com
http://maven.outofmemory.cn/
范例:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test.maven.web</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <properties> <test.spring.version>4.0.0</test.spring.version> </properties></project>
- maven 学习
- Maven学习
- maven学习
- MAVEN学习
- maven学习
- maven学习
- Maven学习
- maven学习
- Maven学习
- maven学习
- maven学习
- Maven 学习
- maven学习
- Maven学习
- MAVEN学习
- maven学习
- Maven学习
- maven学习
- 系统之间共享cookie的要求
- 跨域解决方法之window.name
- 五中常规的网页布局方式
- Maven分离配置、依赖
- hdu 2647 Reward
- Maven 学习
- CSU-1011
- Qt进度条提示对话框
- PAT A1004. Counting Leaves (30)
- iOS 去掉字符串中特殊字符
- java
- 迷你TXT小说阅读器 V2.8 内测3 发布!
- 用Tensorflow拟合线性函数
- 【PAT】1119. Pre- and Post-order Traversals