• maven scope/site/effective-pom/assembly


     point1:<dependency>依赖范围  

    <scope/>中进行配置

        --compile:默认配置,对编译/测试/运行三种都有效。

        --test:只对测试有效。

        --runtime:测试和运行时有效,编译时无效。比如要使用JDBC驱动时,只在运行时使用它就好。

        --provided:编译和测试时有效,运行时无效。举个场景,在有的web项目中,会用到servlet-api这个依赖,在本地编译和测试都没有问题,但是当把war包部署到tomcat时,会报错:

    Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

    产生的原因就是tomcat也有这个servlet-api,所以添加:

    <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>3.0-alpha-1</version>
                <scope>provided</scope>
    </dependency>

    可以让servlet-api只在编译和测试时有效,而当tomcat启动后就不生效,非常方便。

     ----------------------------------------------------------------------------------

     point2:effective-pom

         --并不是说我们自己pom.xml文件中所定义的依赖就是整个工程的依赖,它还包含了超级pom中的依赖(安装包中的lib下maven-model-builder-3.0.5.jar中规定了核心的依赖),所以真正生效的pom是我们自定义和超级pom以及可能的其他pom(父pom)等的叠加。by the way,在超级pom中还定义了中央库的位置,所以默认的settings.xml中并不用指定到哪里下载这些依赖。

      ----------------------------------------------------------------------------------

    point3:mvn site

      这可以生成一个站点,包含了此项目的一些信息,比较常见的mvn cobertura:cobertura可以将项目的代码覆盖率统计并展示出来,进入site目录,点开index.html可以看到:

      ---------------------------------------------------------------------------------- 

    point4:打包命令--

      maven提供了完备的打包机制。assembly插件常用的套件描述符包括

        bin----将jar包打zip包

        jar-with-dependencies----带有依赖的jar包

        project----将工程源代码打包

        src----将工程src目录下的源代码打包

    E:UsersBruceChanworkspacedev01TestMaven>mvn assembly:single -DdescriptorId=project
    [INFO] Scanning for projects...
    [WARNING]
    [WARNING] Some problems were encountered while building the effective model for com.changjiang.test:TestMaven:jar:0.0.1-SNAPSHOT
    [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 67, column 12
    [WARNING]
    [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
    [WARNING]
    [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
    [WARNING]
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building TestMaven 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-assembly-plugin:2.2-beta-5:single (default-cli) @ TestMaven ---
    [INFO] Building tar : E:UsersBruceChanworkspacedev01TestMaven	argetTestMaven-0.0.1-SNAPSHOT-project.tar.gz
    [INFO] Building tar : E:UsersBruceChanworkspacedev01TestMaven	argetTestMaven-0.0.1-SNAPSHOT-project.tar.bz2
    [INFO] Building zip: E:UsersBruceChanworkspacedev01TestMaven	argetTestMaven-0.0.1-SNAPSHOT-project.zip
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 8.702s
    [INFO] Finished at: Thu Aug 25 10:05:22 CST 2016
    [INFO] Final Memory: 20M/244M
    [INFO] ------------------------------------------------------------------------
  • 相关阅读:
    蒲公英 &#183; JELLY技术周刊 Vol.29: 前端智能化在阿里的那些事
    蒲公英 · JELLY技术周刊 Vol.28: Next.js 10 发布
    蒲公英 &#183; JELLY技术周刊 Vol 27: 平平无奇 React 17
    蒲公英 &#183; JELLY技术周刊 Vol.26: 请问您这个月要来点肝么?
    《痞子衡嵌入式半月刊》 索引
    痞子衡嵌入式:恩智浦MCU集成开发环境与开发工具教程
    《痞子衡嵌入式半月刊》 第 21 期
    痞子衡嵌入式:了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点
    痞子衡嵌入式:深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程
    痞子衡嵌入式:一个奇怪的Keil MDK下变量链接强制对齐报错问题(--legacyalign)
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/5784315.html
Copyright © 2020-2023  润新知