Maven依赖的Scope去除部署不需要的jar 包

最近开发一个wap小项目,需要用到servlet-api.jar、jsp-api.jar,而tomcat\lib目录中已经拥有这两个jar包,照成编译正常,运行初始化异常,解决这个问题的方法就是使用<scope>标签,如下:

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.4</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jsp-api</artifactId>

<version>2.0</version>

<scope>provided</scope>

</dependency>

这里的意思是说,编译的时候用到servlet-api和jsp-api,但在打包的时候不用这两个依赖。

附scope其它参数:

  • compile
    默认的scope,表示
    dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布
  • provided
    跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet
    AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
  • runtime
    表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。
  • test
    表示dependency作用在测试时,不作用在运行时。
    只在测试时使用,用于编译和运行测试代码。不会随项目发布。
  • system
    跟provided
    相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。
时间: 2024-10-25 15:27:47

Maven依赖的Scope去除部署不需要的jar 包的相关文章

Maven依赖的Scope去除部署不需要的jar 包(打包)

<dependency> < groupId>javax.servlet</groupId> < artifactId>jsp-api</artifactId> < version>2.0</version> < scope>provided</scope> < /dependency> compile 默认的scope,表示  dependency 都可以在生命周期中使用.而且,这些d

转:Maven介绍(创建工程项目以及下载所需要的jar包)

http://blog.csdn.net/guanghua2009/article/details/6644111 目前我还不太会用maven,慢慢学吧 目前就是用来下载自己要的jar包,先根据这篇转载的文章新建一个工程,然后修改pom.xml,然后把cmd拷贝到maven新建的工程的根目录下,运行命令:mvn compile,就会下载你想要的jar包,或者直接运行mvn package,你就能得到一个war包,把里面WEB-INF/lib的jar包拷贝出来就是你想要的了 至于maven下载下来

转】Maven实战(二)---多模块开发---缺少Jar包

原博文出于:http://blog.csdn.net/liutengteng130/article/details/41611755    感谢! Maven里面的Jar包经常出现Missing的情况,无外乎几种情况: 1.私服里面没有相应的版本号的Jar包或者Jar包没写版本号 2.Jar包引错了,相应的依赖关系也就错了 3.引入了依赖的Jar包,没被管理起来 第一二个问题解决起来挺简单的,第三个问题对于不理解Maven的还需要解决一番. 其实第三个问题就存在与Maven的<dependenc

eclipse部署时候不拷jar包到web-inf下面的lib目录解决办法

前段时间在做项目的时候,用eclipse构建的maven工程部署到tomcat下面去时,发现tomcat的web-inf下面的lib目录是空的, 当时弄了好长时间,最后实在没辙了,就手动把所有的依赖拷到web-inf的lib下面去,但是每次重新部署时,eclipse自动部署又将lib目录清 空,当时那叫一个郁闷,后来我看了下别人的classpath文件,发现我的classpath跟别人的不同点 图1: 图2: 发现在加了上述attributes;标签后,能正常的部署项目,并且tomcat lib

J2EE CDI beans部署在独立的jar包中

本篇博客主要介绍,CDI开发中,将所有的CDI Bean打包到一个jar包中,如何解决org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [...] with qualifiers [@...] at injection point ... 异常. 介绍 在CDI项目中beans.xml的一个主要作用就是告诉容器我们所开发的CDI存在的位置,保证容器能够扫描到这些

IDEA搭建Maven Web(SSM)项目(二)——jar包引入、jetty服务器配置和ssm配置

第二篇:jetty服务器插件配置,ssm所需基本jar包引入,ssm相关文件配置 1. 配置jetty服务器插件打开已默认创建的pom.xml文件,其中已经自动引入了一些jar和maven插件,我们在插件区<plugins></plugins>标签内加入以下代码段,引入jetty插件jar包,此时idea会自动下载jar包,或者打开右边Maven project面板刷新,如图: <plugin> <groupId>org.mortbay.jetty</

使用maven给spring项目打可直接运行的jar包(配置文件内置外置的打法)

从网上看过许多打jar包的例子,大多是将配置文件打进jar包的.经过本人一番研究,终于搞清楚了怎样将jar包的配置文件外置. 废话不说,直接上spring的pom.xml的配置文件. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav

解决maven打包打不进lib下的第三方jar包问题

maven项目有时候找不到第三方jar包的依赖坐标,这时就需要在项目下建立一个文件夹,将第三方jar包放在此处,在maven打包时将文件夹下的jar包打包进去 在pom.xml中添加如下插件,并指明jar包路径 <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8<

换了应用部署环境,读取jar包中文件遇到的问题。

程序换了个tomcat部署出现了问题,在原来的系统里好好的.最后定位问题发现是使用dom4j读取jar包中文件出现的问题,dom4j的异常是:org.dom4j.DocumentException: null Nested exception: null,经过观察发现拿到的InputStream对象为空.再追代码发现是因为JarFile压根就没有读到文件.顺手换成了当前线程上下文去读取文件,这次抛出的异常很清楚,jar文件找不到.最近经过观察发现是引文文件路径中存在空格,这是和原来系统不同的地方