Maven

什么是Maven

是apache下的一个项目管理工具
apache/maven
github|apache/maven
Maven的pom.xml文件详解——Build Settings

Maven常用数据

mvn archetype:generate :创建 Maven 项目
mvn compile :编译源代码
mvn test-compile :编译测试代码
mvn test : 运行应用程序中的单元测试
mvn site : 生成项目相关信息的网站
mvn clean :清除目标目录中的生成结果
mvn package : 依据项目生成 jar 文件
mvn install :在本地 Repository 中安装 jar
mvn deploy:将jar包发布到远程仓库
mvn eclipse:eclipse :生成 Eclipse 项目文件

Maven详解

Maven教程
Maven详解

Maven安装配置|windows环境配置

1)java环境变量

2)下载Maven

3)Maven环境变量

M2_HOME 和 MAVEN_HOME
指向maven包

4)检查

mvn -version

Maven资源库

Maven详解之仓库——本地仓库、远程仓库
jar包来源顺序:本地仓库—->私服(如果设置的话)—->中央仓库(远程仓库)
默认所有的Maven仓库都服用一个本地仓库
中央仓库是唯一内置的远程仓库:
Maven中央仓库地址
Maven中央仓库地址更改版本

Maven本地资源库

更改本地资源库

默认位置(用户文件夹下):~/.m2/repository
conf\settings.xml

<localRepository>D:\apache-maven-3.5.0\repository</localRepository>

更新本地资源库

mvn archetype:generate

Maven远程存储库

pom.xml

<repositories>
    <repository>
            <id>jboss</id>     <!---->
            <name>JBoss Repository</name>   <!---->
            <url>http://repository.jboss.com/maven2/</url>  <!---->

            <releases>  <!---->
                <updatePolicy>daily</updatePolicy><!-- never,always,interval n -->
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy><!-- fail,ignore -->
            </releases>

            <snapshots> <!---->
                <enabled>false</enabled>
            </snapshots>

            <layout>    <!---->
                default
            </layout>
        </repository>
</repositories>

Maven依赖机制

Introduction to the Dependency Mechanism
compile: 默认的scope。编译、测试、打包全都需要。compile参与依赖传递,就是说,项目A依赖于B(依赖scope是compile),项目C依赖于你的项目A,那么C也就依赖于B。
provided: 表示JDK或者容器会在Runtime时提供这些(jar),如servlet api,部署时是不需要它的,因为应用服务器肯定有这些东西。provided的东西在编译和测试时会用到,不参与传递依赖。
runtime: 表示编译时不需要,但测试和运行时需要,最终打包时会包含进去。
test: 只用于测试阶段(测试的编译和测试的运行),典型的就是junit的jar。
system: 和provided类似,但要求jar是系统里已有的,不会在repository里找,如rt.jar,tools.jar这些。
import: 简单的说,项目的pom可以继承另一个项目的pom,从而继承了父项目的依赖关系,但是因为之后single inheritance的限制,所以创造了import,使得你可以“导入”或者说“继承”任何一到多个项目的依赖关系。

<dependency management><dependencies>的区别:

在父POM中用定义好version, scope, 和exclusions后,可以被子POM中用定义的依赖所继承使用。这样,如果有多个子POM的话,可以确保用同一套version, scope, 和exclusions。

<dependencyManagement>部分。它指示要替换为指定POM的<dependencyManagement>部分中的依赖关系的有效列表的依赖关系。由于它们被替换,具有导入范围的依赖关系实际上并不参与限制依赖关系的传递性。

编译时依赖关系仍然是编译范围,即使它们是传递性的。

-compileprovidedruntimetest
compilecompile(*)-runtime-
providedprovided-provided-
runtimeruntime-runtime-
testtest-test-

使用Maven创建Web应用程序项目(Eclipse下)

Eclipse下配置Maven环境

myeclipse 上安装 Maven3
添加maven文件夹依赖和setting.xml

使用Maven创建Web应用项目

Myeclipse 10 Maven 构建 Java Web 项目
如何用Maven创建web项目(具体步骤)
图文详解MyEclipse中新建Maven webapp项目的步骤(很详细)
GroupId:一般是公司名或组织名
ArtifactId:一般是project名
Packaging:打包类型,jar/war/rar/ear/pom等,默认是jar
Version:版本号,GroupId+ArtifactId+Packaging+Version构成项目的唯一标识
Snapshot:标识一个正在开发阶段、会经常更新、但尚未发布的版本

Maven搭建SSH
目录结构:
目录结构

Maven web项目部署运行

eclipse构建及运行maven web项目

m2eclipse插件|已经安装

直接在在线时长上搜索m2e
Maven Integration for Eclipse
或直接从站点安装
http://download.eclipse.org/technology/m2e/releases

tomcat中配置Maven

tomcat角色管理,设置超级管理员

tomcat_home/conf/tomcat_users.xml

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
修改Maven配置文件

maven_home/conf/settings.xml

<server>
     <id>tomcat</id>
     <username>admin</username>
     <password>admin</password>
 </server>

关于项目中pom.xml报错问题

仔细检查依赖关系,点击pom.xml视图,查看报错信息,然后进入setting.xml中设置的的repository路径检查jar包,可以删除然后右键-->maven-->update

tomcat 7 下 在web.xml中添加页面编码filter遇到:Java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
org.apache.catalina.deploy.WebXml addFilter

Maven项目加载本地jar

<dependency>
        <groupId>com.dj741.cloud</groupId>  <!--自定义-->
        <artifactId>cloud</artifactId>    <!--自定义-->
        <version>1.0</version> <!--自定义-->
        <scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
        <systemPath>${basedir}/lib/dj741.jar</systemPath> <!--项目根目录下的lib文件夹下-->
    </dependency> 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值