<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    The NoteBook of EricKong

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

    我們?cè)谟胢aven和eclipse開發(fā)WEB應(yīng)用的時(shí)候,需要把servlet-api和jsp-api加入進(jìn)來,要不然編譯不會(huì)通過,加入進(jìn)來之后在打包的時(shí)候maven自動(dòng)把所有的依賴包都放到lib下面,如果你在tomcat下面運(yùn)行就會(huì)有問題,因?yàn)閠omcat發(fā)現(xiàn)你的web應(yīng)用的lib中包含了servlet-api,他會(huì)報(bào)錯(cuò)。

    解決這個(gè)問題的方法就是使用<scope>標(biāo)簽,如下

     

    <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>


    這里的意思是說,編譯的時(shí)候用到servlet-api和jsp-api,但在打包的時(shí)候不用這兩個(gè)依賴。

    在maven的官方中是這樣描述的

    Dependency Scope
    Dependency scope is used to limit the transitivity of a depedency, and also to affect the classpath used for various build tasks.

    There are 6 scopes available:

    compile
    This is the default scope, used if none is specified. Compile dependencies are available in all classpaths of a project. Furthermore, those dependencies are propagated to dependent projects.
    provided
    This is much like compile, but indicates you expect the JDK or a container to provide the dependency at runtime. For example, when building a web application for the Java Enterprise Edition, you would set the dependency on the Servlet API and related Java EE APIs to scope provided because the web container provides those classes. This scope is only available on the compilation and test classpath, and is not transitive.
    runtime
    This scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath.
    test
    This scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases.
    system
    This scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository.
    import (only available in Maven 2.0.9 or later)
    This scope is only used on a dependency of type pom in the <dependencyManagement> section. It indicates that the specified POM should be replaced with the dependencies in that POM's <dependencyManagement> section. Since they are replaced, dependencies with a scope of import do not actually participate in limiting the transitivity of a dependency.
    如果你這樣做了,但使用eclipse+tomcat做測(cè)試的時(shí)候發(fā)現(xiàn)servlet-api還是被打包到lib下面了,你要把maven插件中的WTP也安裝一下,問題應(yīng)該就解決了。

    posted on 2011-07-05 17:01 Eric_jiang 閱讀(12799) 評(píng)論(0)  編輯  收藏 所屬分類: Maven
    主站蜘蛛池模板: 亚洲免费观看网站| 亚洲av中文无码字幕色不卡| www视频在线观看免费| 亚洲一区二区三区在线网站| 日日AV拍夜夜添久久免费| 一区二区三区在线观看免费| 国产成人精品日本亚洲网站| 免费国产黄网站在线观看可以下载| 亚洲女人18毛片水真多| 四虎永久在线精品免费观看地址 | 亚洲国产精品无码久久青草| 国产高潮流白浆喷水免费A片 | 亚洲精品线在线观看| 免费羞羞视频网站| 久久国产免费观看精品| 一区二区亚洲精品精华液| 亚洲日韩精品无码专区网址 | 亚洲日韩VA无码中文字幕 | 一个人看www在线高清免费看| 污污免费在线观看| 亚洲精品中文字幕无乱码| 免费人成无码大片在线观看| 久久福利青草精品资源站免费| 国产精品亚洲综合| 亚洲精品人成电影网| 亚洲国产天堂久久综合| 免费在线视频你懂的| 国产VA免费精品高清在线| 亚洲五月丁香综合视频| 精品久久香蕉国产线看观看亚洲| 无码一区二区三区AV免费| 国产又黄又爽又大的免费视频| 亚洲最大天堂无码精品区| 亚洲邪恶天堂影院在线观看| 国产一区二区免费在线| 无码乱肉视频免费大全合集| 一级毛片aa高清免费观看| 亚洲人成网站在线在线观看| 亚洲Av综合色区无码专区桃色| 亚洲成A人片在线观看无码3D | 国产色爽女小说免费看|