zoukankan      html  css  js  c++  java
  • maven使用杂记

    为maven的编译、运行指定不同的jdk,有两种方式

    参考:Compiling Sources Using A Different JDK

    1. 最好的就是用Toolchainstool 插件,这个插件可以为包括compiler在内的其他诸多插件制定jdk版本,以及其他工具的版本(如果这些插件需要使用的话)。具体参考:Guide to Using Toolchains

    2. 其次是在maven-compiler-plugin插件中做配置,如下:

    <project>
      [...]
      <build>
        [...]
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
              <verbose>true</verbose>
              <fork>true</fork>
              <executable><!-- path-to-javac --></executable>
              <compilerVersion>1.3</compilerVersion>
            </configuration>
          </plugin>
        </plugins>
        [...]
      </build>
      [...]
    </project>
    
    1. 还有一种不太推荐的做法,这种做法不指定具体的编译器,而是开启交叉编译。采用这种方式只需要给编译器javac传入-source参数和-target参数。但是这种做法不推荐使用,尤其是当源码是用来一些高版本的语法时,贸然交叉编译成低版本的字节码,可能会导致运行失败。

      具体做法是配置compiler插件的source属性和target属性:
    <project>
      [...]
      <build>
        [...]
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
            </configuration>
          </plugin>
        </plugins>
        [...]
      </build>
      [...]
    </project>
    

    查看已解析依赖

    解析依赖的意思是确定所有的直接依赖和传递性依赖的最终版本,保证每个依赖都是唯一的。查看已解析依赖的命令是:

    mvn dependency:list
    

    查看项目依赖树

    可以清晰地看到当前项目的依赖树是什么样的

    mvn dependency:tree
    

    分析依赖

    分析依赖可以分析出哪些依赖是声明了但是没有使用到的,即多余声明;也可以分析出哪些依赖是直接使用到但是没有声明成直接依赖(而是通过依赖传递得到的)

    mvn dependency:analyze
    

    重点关注结果中的 Used undeclared dependenciesUnused declared dependencies 两部分内容。

    需要注意的是,对于这样一类依赖,我们不应该简单地直接删除其声明,而是应该仔细分析。由于dependency:analyze只会分析编译主代码和测试代码需要用到的依赖,一些执行测试和运行时需要的依赖它就发现不了。比如spring-core和spring-beans是运行Spring Framework项目必要的类库,因此不应该删除依赖声明。当然,有时候确实能通过该信息找到一些没用的依赖,但一定要小心测试。

  • 相关阅读:
    Sage CRM升级后的问题跟进
    js 控制滚动条位置
    初学Jquery插件制作:在SageCRM的查询屏幕隐藏部分行的功能
    [转摘] Reporting Service 200
    js数组去重复项
    JavaScript tips 1024 * 768
    javascript 的 replace 函数
    the secret of sagecrm urls
    Sage CRM 自增ID的方案和遇到的问题
    EXTJS 可编辑列表的时间编辑问题
  • 原文地址:https://www.cnblogs.com/JMLiu/p/11664316.html
Copyright © 2011-2022 走看看