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>



0 0
原创粉丝点击