当前位置: 首页 > news >正文

黑龙江省建设厅网站东莞阳光网论坛

黑龙江省建设厅网站,东莞阳光网论坛,大家推荐永久免费的服务器,泉州 网站建设依赖的特性 scope标签在dependencies/dependency标签内,可选值有compile(默认值),test,provided,system,runtime,import compile#xff1a;在项目实际运行时真正要用到的jar包都是以compile的范围进行依赖 ,比如第三方框架SSM所需的jar包test#xff1a;测试过程中使用的j…依赖的特性 scope标签在dependencies/dependency标签内,可选值有compile(默认值),test,provided,system,runtime,import compile在项目实际运行时真正要用到的jar包都是以compile的范围进行依赖 ,比如第三方框架SSM所需的jar包test测试过程中使用的jar包通常以test的范围依赖进来 , 比如junit依赖provided在开发过程中需要用到的“服务器上的 jar 包”通常以provided的范围依赖进来 , 比如 servlet-api、jsp-api 测试依赖的范围 测试compile , test , provided三种依赖范围的对比 provided范围的jar包不参与部署不放进war包这样可以避免和服务器上已有的同类jar包产生冲突同时减轻服务器的负担 main目录空间test目录空间开发过程时间部署到服务器时间compile有效有效有效有效(参与打包)test无效有效有效无效(不参与打包)provided有效有效有效无效(不参与打包) 验证compile范围对main/test目录有效: 判断main/test目录下的某个类是否可以使用以compile范围导入的pro01--maven-java依赖中的Calculator类 在HelloServlet/CalculatorTest类中可以导入Calculator类并且编译成功说明有效 验证test范围对main目录无效: 在主体程序Calculator中导入org.junit.Test这个注解执行Maven编译命令失败说明无效 [ERROR] /D:/maven-workspace/space201026/pro01-maven-java/src/main/java/com/atguigu/maven/Calculator.java:程序包org.junit不存在验证test和provided范围不参与服务器部署: 通过compile范围依赖的jar包会放入war包通过test范围依赖的jar包不会放入war包 验证provided范围对test目录有效: 在pro02-maven-web的测试程序CalculatorTest中使用servlet-api.jar包中的类,执行Maven编译命令成功说明有效 package com.atguigu.maven; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import org.junit.Test; import com.atguigu.maven.Calculator; // 静态导入的效果是将Assert类中的静态资源导入当前类 // 这样一来在当前类中就可以直接使用Assert类中的静态资源不需要写类名 import static org.junit.Assert.*; public class CalculatorTest{Testpublic void testSum(){//....} }测试依赖的传递性 传递的原则: 在A依赖B,B依赖C的前提下,在A没有配置对C的依赖的情况测试C是否能够传递到A B对C的依赖范围是compile范围那么C可以传递B对C的依赖范围是test或provided范围那么C不可以传递所以需要这样的jar包时就必须在需要的地方明确配置依赖才可以C是否能够传递到A取决于B依赖C时使用的依赖范围,与A依赖B时的范围无关,即使A是对B的依赖范围是test/provided范围,C该传递还是能传递 验证compile范围的依赖可以传递: 编辑pro01-maven-java工程根目录下pom.xml文件, 让当前工程可以使用commons-logging依赖中的类 spring-core依赖对commons-logging依赖范围是compile范围,所以commons-logging依赖可以传递修改了本地工作空间的pro01-maven-java的pom.xml文件 , 需要需要使用Maven命令重新生成pro01-maven-java的XXX.pom文件然后存入到本地仓库使用mvn dependency:tree/list命令查看pro01-maven-java工程可以使用的依赖 !-- https://mvnrepository.com/artifact/org.springframework/spring-core -- dependency!--默认以compile范围导入spring-core依赖--groupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion4.0.0.RELEASE/version /dependency[INFO] com.atguigu.maven:pro01-maven-java:jar:1.0-SNAPSHOT #junit对hamcrest-core的依赖范围是compile,所以可以传递 [INFO] - junit:junit:jar:4.12:test #这里显示test是因为我们是以test范围引入的junit,并不是说junit对hamcrest-core的依赖范围是test [INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] \- org.springframework:spring-core:jar:4.0.0.RELEASE:compile [INFO] \- commons-logging:commons-logging:jar:1.1.1:compilepro02-maven-web工程也可以使用commons-logging依赖中的类 pro01-maven-java对spring-core依赖的范围是compile其可以传递, spring-core对commons-logging的依赖范围是compile其可以传递使用mvn dependency:tree命令查看pro02-maven-web工程可以使用的依赖 !--依赖pro01-maven-java的-- dependencygroupIdcom.atguigu.maven/groupIdartifactIdpro01-maven-java/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope /dependency[INFO] com.atguigu.maven:pro02-maven-web:war:1.0-SNAPSHOT,[INFO] \- com.atguigu.maven:pro01-maven-java:jar:1.0-SNAPSHOT:compile[INFO] \- org.springframework:spring-core:jar:4.0.0.RELEASE:compile[INFO] \- commons-logging:commons-logging:jar:1.1.1:compile验证test范围不能传递依赖: 在pro01-maven-java加入了的junit依赖,但是在pro02-maven-web工程中查看依赖树的时候并没有看到junit --当前工程是pro01-maven-java-- dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version scopetest/scope/dependency /dependencies验证provided范围不能传递依赖: 在pro01-maven-java工程中加入了servlet-api的依赖, 但是在pro02-maven-web工程中查看依赖树的时候并没有看到该依赖 --当前工程是pro01-maven-java-- dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope /dependency[INFO] com.atguigu.maven:pro02-maven-web:war:1.0-SNAPSHOT[INFO] \- com.atguigu.maven:pro01-maven-java:jar:1.0-SNAPSHOT:compile[INFO] \- org.springframework:spring-core:jar:4.0.0.RELEASE:compile[INFO] \- commons-logging:commons-logging:jar:1.1.1:compile配置依赖排除 当A依赖B,B依赖C而且C可以传递到A的时候A如果不想要C,可以使用exclude标签在A里面把C排除掉(阻止某些jar包的传递可以避免jar包之间的冲突) 配置对commons-logging依赖的排除: 使用exclude标签指定要排除的具体的坐标并且不需要写版本号 , 只会阻止依赖传递到当前工程不影响其他依赖的传递 dependencygroupIdcom.atguigu.maven/groupIdartifactIdpro01-maven-java/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope!--使用excludes标签配置依赖的排除--exclusions!--在exclude标签中配置一个具体的排除 --exclusion!--指定要排除的依赖的坐标不需要写version--groupIdcommons-logging/groupIdartifactIdcommons-logging/artifactId/exclusion/exclusions /dependency运行mvn dependency:tree命令发现pro02-maven-web工程下的spring-core依赖下面已经没有commons-logging依赖 [INFO] com.atguigu.maven:pro02-maven-web:war:1.0-SNAPSHOT [INFO] \- com.atguigu.maven:pro01-maven-java:jar:1.0-SNAPSHOT:compile [INFO] \- org.springframework:spring-core:jar:4.0.0.RELEASE:compile
http://www.hkea.cn/news/14561390/

相关文章:

  • 哈尔滨多语言网站建设涪陵区小城镇建设管理处网站
  • 和印度做外贸的网站网页制作团队
  • 做闪图的网站五大建设是指什么
  • 多城市分站站群cms广西建设官方网站
  • 建设校园网站必要性国内专门做酒的网站有哪些
  • 影响网站pr的因素有哪些有没有专门做特产的网站
  • 佛山教育平台网站建设简述网站建设在作用
  • 北京上海网站建设公司朋友圈网络营销
  • 二 网站建设的重要性网站开发技术发展史
  • 自己做的网页怎么连接到网站阿里云备案网站备案域名
  • 做用户运营应该关注哪些网站qq群推广拉人
  • 福州网站建设 找燕狂徒 05笨鸟网站开发
  • 网站改版对seo南昌做seo的公司
  • 沈阳做网站推广的公司广州建设总承包集团
  • 小公司做网站用哪种服务器网站淘客宝怎么做
  • 北京专业网站设计公司北京网站托管维护
  • 国内用什么做网站wordpress 笑话站
  • 建设银行 贷款 查询 网站校内网站建设与维护
  • 鞍山58路公交车路线南昌seo招聘信息
  • 旅游手机网站开发wordpress 汉化工具
  • 1元涨1000粉丝网站网站建设与管理试题与答案
  • 青岛网站建设华夏亚马逊雨林到底有多恐怖
  • 营销网站建设情况调查问卷河北网站建设推广
  • 重庆网站建站建设的费用综合型网站建设
  • 云南省网站开发公司中小微企业名录库查询
  • 法律网站建设方案上海注册公司注册地址
  • 做细分行业信息网站改革开放40周年网站发展建设
  • 沧州建设网站公司国内好的网站建设
  • 有没有做翻译赚钱的网站如何套用别人网站做页面
  • 德阳网站建设网站建设浙江网站建设报价