【问题标题】:Upgrade J2ee project to latest libraries将 J2ee 项目升级到最新的库
【发布时间】:2018-01-18 18:07:38
【问题描述】:

我的任务是整理一个 j2ee 应用程序并出于安全目的升级其所有库(一些较旧的 jars 得到了安全问题报告)

我们正在使用 maven,我有几个问题:
是否有可能找到未使用的罐子?
如何升级库?
如果库 A 升级了如何找到相关库的最低版本?

m2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
m2/asm/asm/3.3.1/asm-3.3.1.jar
m2/cglib/cglib-nodep/2.2.2/cglib-nodep-2.2.2.jar
m2/cglib/cglib/2.2.2/cglib-2.2.2.jar
m2/com/google/code/gson/gson/2.7/gson-2.7.jar
m2/com/ibm/icu/icu4j/53.1/icu4j-53.1.jar
m2/com/thoughtworks/proxytoys/proxytoys/1.0/proxytoys-1.0.jar
m2/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar
m2/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
m2/commons-fileupload/commons-fileupload/1.3.1/commons-fileupload-1.3.1.jar
m2/commons-io/commons-io/2.4/commons-io-2.4.jar
m2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
m2/junit/junit/4.11/junit-4.11.jar
m2/org/apache/commons/commons-collections4/4.0/commons-collections4-4.0.jar
m2/org/apache/commons/commons-digester3/3.2/commons-digester3-3.2.jar
m2/org/apache/commons/commons-email/1.3.3/commons-email-1.3.3.jar
m2/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar
m2/org/apache/logging/log4j/log4j-api/2.1/log4j-api-2.1.jar
m2/org/apache/logging/log4j/log4j-core/2.1/log4j-core-2.1.jar
m2/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar
m2/org/apache/taglibs/taglibs-standard-spec/1.2.1/taglibs-standard-spec-1.2.1.jar
m2/org/mongodb/mongo-java-driver/2.12.4/mongo-java-driver-2.12.4.jar
m2/org/mongodb/morphia/morphia/1.3.2/morphia-1.3.2.jar
m2/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar
m2/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar
m2/org/springframework/data/spring-data-commons/1.8.0.RELEASE/spring-data-commons-1.8.0.RELEASE.jar
m2/org/springframework/data/spring-data-mongodb/1.5.0.RELEASE/spring-data-mongodb-1.5.0.RELEASE.jar
m2/org/springframework/spring-aop/4.0.5.RELEASE/spring-aop-4.0.5.RELEASE.jar
m2/org/springframework/spring-beans/4.0.5.RELEASE/spring-beans-4.0.5.RELEASE.jar
m2/org/springframework/spring-context/4.0.5.RELEASE/spring-context-4.0.5.RELEASE.jar
m2/org/springframework/spring-core/4.0.5.RELEASE/spring-core-4.0.5.RELEASE.jar
m2/org/springframework/spring-expression/4.0.5.RELEASE/spring-expression-4.0.5.RELEASE.jar
m2/org/springframework/spring-tx/3.2.9.RELEASE/spring-tx-3.2.9.RELEASE.jar
m2/org/springframework/spring-web/4.0.5.RELEASE/spring-web-4.0.5.RELEASE.jar
m2/org/springframework/spring-webmvc/4.0.5.RELEASE/spring-webmvc-4.0.5.RELEASE.jar
m2/xalan/serializer/2.7.1/serializer-2.7.1.jar
m2/xalan/xalan/2.7.1/xalan-2.7.1.jar
m2/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar

【问题讨论】:

    标签: java maven jar dependencies


    【解决方案1】:
    • 是否有可能找到未使用的罐子?

      是的!您可以使用Apache Maven Dependency Plugin

      您可以执行mvn dependency:analyze -DignoreNonCompile 来查找未使用但已声明和已使用但未声明的依赖项。请查看完整文档,因为您可以自定义排除项、您希望在哪个阶段执行验证以及此插件中的其他主题。

      您可以尽可能严格,检查此插件可用的goals,使用<goal>analyze-duplicate</goal> 您还可以捕获重复的依赖项,例如,如果您希望您的构建因“依赖项错误”而失败,您可以定义你的 pom.xml 中的这个插件就像:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>analyze-dependencies</id>
            <goals>
              <goal>analyze-duplicate</goal>
              <goal>analyze-only</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <failBuild>true</failBuild>
        </configuration>
      </plugin>
      
    • 升级库怎么样?

      是的!对于此任务,您可以使用Versions Maven Plugin

      要查找新的依赖项更新,您可以使用mvn versions:display-dependency-updates,它会为您提供 pom.xml 中依赖项的最新版本列表

      您也可以通过mvn versions:display-plugin-updates 查找插件更新。

      默认情况下,这将递归执行,如果您不想让它递归,您可以使用-N 标志。

      把它们放在一起:mvn -N versions:display-dependency-updates versions:display-plugin-updates

    【讨论】:

    • 真棒简短而甜蜜的答案。
    猜你喜欢
    • 2021-01-12
    • 1970-01-01
    • 2016-03-11
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多