使用Maven重新编译依赖项 - 可能吗?任何性能提升?

Ari*_*ies 6 java dependencies compiler-optimization building maven

我在考虑Maven中的依赖关系.Maven会下载它们,但是它们编译的JVM的目标版本以及使用什么编译器是未知的.这提出了两个问题:

  • 依赖项重新编译会带来更快的依赖库吗? 我试图搜索这个,但没有找到足够的答案.我发现对于1.6,有Split字节码验证,这是在使用目标1.6进行编译时完成的.
    还有一个问题是Java 6在JDK,JVM或两者中的性能改进吗?在那里提到更新版本的javac可能会生成更优化的代码.
  • 是否可以使用Maven执行依赖库的重新编译?是否有可能配置Maven下载源,放置有关1.6目标的信息并执行mvn clean install
    我知道Maven Dependency插件依赖:源目标.这可以用于源代码下载.
    还有Maven Replacer插件允许替换文件中的文本.正如其第58期中所述,已经实现了XPath支持.
    是否有可能使用这些插件实现依赖关系以及依赖关系来执行它?我不确定如何在依赖项上执行它 - 也许使用Maven Replacer插件将配置注入到解压缩的依赖项pom.xml中?
    或者是否有一种更简单的方法可以在用户的settings.xml中使用build profile配置目标java版本,该版本优先于项目设置,从而避免修改pom.xml

Pet*_*rey 3

javac几乎没有进行任何优化,而那些优化从最早的时候就已经存在了。(甚至可以被认为是历史性的)如果您有由 Java 1.0 构建的代码,您可能会发现改进,但过去十年的任何内容在字节代码中都可能与今天一样最佳。

大多数优化是在 JVM 本身中完成的,您应该会发现,即使对于完全相同的代码,Java 6 update 30 的运行速度也比 Java 6 update 0 更快。