java - 在 Eclipse 中确定 Java 项目依赖关系

标签 java eclipse maven dependencies project

我知道这是一个极其愚蠢的问题...但我正在将一个曾经使用 Ant 构建的 Java 项目转换为使用 Apache Maven。我读到的完成此操作的步骤之一是将项目所需的所有 JAR 作为依赖项放在 pom.xml 文件中。现在,由于我对这个项目不太熟悉,是否有任何属性设置可以让我清楚地查看所有 JAR 依赖项?我知道有些位于 WEB-INF\lib 目录中,但查看 Ant 的原始 build.xml 文件,似乎比它试图添加的要多。再说一遍,我对所有这些概念都很陌生,但我只是希望有一种简单的方法来确定 Java 项目具有哪些依赖项,以便我可以将它们(或它们的 Maven 等效项)添加到 pom.xml文件。有什么建议吗?

编辑:这是令我困惑的部分内容。当我打开尝试使用 Apache Tomcat 部署的项目的 WAR 文件时,这些是我能找到的唯一 JAR 文件...

images
META-INF
util
WEB-INF
    > classes
    > lib
        > jtds-1.2.4.jar
        > jw-core-web-1.2.0.jar
    > web.xml
blah.jsp
blah.jsp
blah.jsp

我认为我至少需要这两个文件。但是当我打开 build.xml 文件时,我发现这样的部分:

<!-- Jars listed here are added to the generated war file -->
<fileset id="bundle.jars" dir="WebRoot/WEB-INF/lib">
    <include name="base.jar"/>
    <include name="ldap.jar"/>
    <include name="junit.jar"/>
    <include name="titan.jar"/>
    <include name="activation.jar"/>
    <include name="javamail-1.2.jar"/>
    <include name="commons-httpclient.jar"/>
</fileset>

当然,我在上面简要展开的 WAR 文件中没有看到任何这些 jar。此外,JRE 系统库与 JAR 文件列表一起列在我的 Package Explorer 下。现在,我是否也需要将这些添加到我的依赖项列表中?这是我得到的:

JRE System Library
    > resources.jar
    > rt.jar
    > jsse.jar
    > jce.jar
    > charsets.jar
    > dnsns.jar
    > dns_sd.jar
    > localedata.jar
    > sunjce_provider.jar

最佳答案

如果您在 Eclipse 中设置了项目,那么您应该能够在 Project Explorer View 中查看所有依赖项。它们必须位于构建路径上才能正确编译。

在 Ant 方面,我假设运行时所需的 jar 将与构建的其余部分一起复制到某个位置。如果您的项目正在构建为 WAR,则尤其如此。

如果没有复制任何内容,那么最好的选择是通过仔细扫描 build.xml 来查找所有编译时和运行时 jar。如果您要将其转换为 Maven,那么无论如何您都应该这样做。我认为要查找的关键部分是 javac 和 java Ant 任务。

顺便说一句,当您创建 pom.xml 并添加依赖项时,请通过在 Eclipse 中打开 pom.xml 并单击“依赖项层次结构”选项卡来密切关注依赖项层次结构。这有望阻止您添加冗余的顶级依赖项。

关于java - 在 Eclipse 中确定 Java 项目依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168545/

相关文章:

java - Mobile Backend Starter subscribeToCloudMessage 将不起作用

java - 更新 Robotium .jar 文件

java - 如何使 maven-surefire-plugin 与 Eclipse 中的 TestNG 配合使用

java - 如何解决此错误消息以创建 Enum : "Project ' MyFunProject' is not a J2SE 5. 0 兼容项目。”

java - IDEA编译错误 Unknown version '8' ,不会给编译器任何版本设置

python - 处理 python 脚本中的 wlst 异常

java - 消息: HTTP method POST is not supported by this URL

java - 如何在时间到之前唤醒线程

java - 将图像导入为Lotus Notes中的图像资源

java - 无法检查本地声明的变量