4

也许我直到现在才停止学习 Java 的原因是因为我讨厌Java 处理外部库的方式。我被困在一个地方,单独添加它们,修复版本控制问题以及每次移动/重命名它们,以及每次发布 Java 应用程序时一遍又一遍地复制和编写类路径。

所有这些都必须有一个优雅的解决方案。我将我的所有库(无论任务、平台或其他)都保存在我的开发文件夹中的“lib”文件夹中自己的小文件夹中,有点像这样:

Dev
  -lib
    +JS-jQuery
    +Flex-Degrafa
    -Java-Xerces
      +Xerces-1.2.3
    +More libraries

我可以将 Netbeans 或 Eclipse 用于 Java 开发,但它们都没有提供一种非常简化(更不用说防白痴)的方式来管理所有这些。

非常感谢您朝正确的方向轻推或提供有关此内容的在线文章/教程。

4

5 回答 5

7

您可以使用Ant + IvyMaven来管理您的库依赖项。

于 2009-09-15T21:29:15.847 回答
6

如果它只是您所追求的依赖管理并且您对构建过程的其余部分感到满意​​,我会使用Ivy,因为它可以不显眼地管理您的依赖关系,而使您现有的构建过程保持不变。Eclipse 有一个名为IvyIDE的插件,它通过类路径容器贡献您的依赖项。

Maven 2的学习曲线更陡峭,但提供了更丰富的功能集,用于通过m2eclipseIAM构建项目和 Eclipse 集成。

我个人使用 Maven,因为我有大量的项目要处理,而 Maven 特别适合跨大量项目的高效开发。

查看介绍性文档以了解适合您的方法。

于 2009-09-15T21:39:50.070 回答
2

Netbeans 6.7.1's Maven support is quite good and comes out of the box with the IDE.

The Eclipse addon was frustrating enough that I gave Netbeans another try.

A third choice besides ChssPly76's options is to use Ant with the Maven Ant Tasks. I don't know if I'd call any of these solutions particularly "elegant," but they do spare you the need to manage your own lib/ directory and classpath variables.

于 2009-09-16T00:19:42.937 回答
1

如果您在 Linux 上工作,您可以使用 APT 或 RPM 安装 Java 库。

否则,我通常会将预编译的 JAR 检入项目版本控制存储库中的 lib 目录中,并确保 JAR 文件的名称包含完整的版本信息。例如 lib/foo-1.5.6.jar,而不是 lib/foo.jar。

为了避免在运行您的应用程序之前必须手动设置类路径,您可以在 JAR 本身的清单中设置类路径来定义每个 JAR 文件的依赖关系。JVM 在加载类时会遵循所有的依赖关系。

于 2009-09-15T21:32:20.193 回答
0

Maven 通常麻烦多于其价值,但是直接在 IntelliJ 等 IDE 中打开 maven 项目的能力非常出色。例如,IntelliJ 将下载所有依赖项并使它们可用,而无需先运行构建或 mvn 命令然后刷新项目。每次添加依赖项时也不必重新生成项目。我与许多 Eclipse 开发人员一起工作,他们仅为此而切换到 IntelliJ。

然而,Maven 的一个不足之处是许多库(或库的版本)在公共存储库中不可用。因此,通常需要建立一个本地存储库,例如archiva。在 ant 中,只需将其添加到存储库中的 lib 目录即可。

当你需要做一些 Maven 不通过插件直接支持的事情时,Maven 也可以攻击。通常是几行蚂蚁通常会变成一个上午的工作。

最后,buildr是使用 Maven 的依赖管理和插件的绝佳方式,同时还支持临时任务。

于 2009-09-16T16:40:11.317 回答