【问题标题】:How do you organize your development environment [closed]你如何组织你的开发环境[关闭]
【发布时间】:2009-09-20 15:11:57
【问题描述】:

我有一个文件夹,里面有我所有的项目,用不同的语言。然后我得到了最终可能在我的代码中使用的库(主要是 jar 文件)。我确定有一种公认的做法,对吧?专业人士是做什么的?

【问题讨论】:

标签: project-management organization


【解决方案1】:

这实际上取决于您使用什么工具,以及您喜欢如何组织它。

例如,我见过有人使用 Eclipse,但将每个项目放在一个工作区中,或者为每个项目使用一个工作区。项目的实际存储也可能有所不同。所以,我认为没有公认的做法。

我认为您需要找出最适合您的方法。

【讨论】:

    【解决方案2】:

    对我来说,它是项目根目录下的以下目录列表:

    1. .java 文件的 src,使用包层次结构
    2. 第 3 方 JAR 的 lib,除非我从存储库(例如 Spring 发行版)获取它们
    3. 测试 JUnit 或 TestNG 测试文件
    4. .properties、.xml 等的资源或配置。
    5. web,如果它是一个 web 应用程序,它包含 WEB-INF 及其所有的附属物
    6. 如果我有任何文档,请提供文档

    我喜欢 Spring 开发人员的结构。

    我使用 IntelliJ,所以我想要任何结构都可以很好地使用它。

    我有一个目录 /work 来保存我所有的 Subversion 工作副本。

    【讨论】:

      【解决方案3】:

      我有一个名为 Work 的文件夹。在这个文件夹下,我有 Projects。

      Project 包含我开发的所有软件,每个目录对应一个目录,具有常规名称。每个目录都是一个完整的集市存储库,包含标签、主干和分支(我的旧 svn 风格的遗产,可能我很快就会改变)。

      我还为这些项目开发特定的运行时。每个运行时都通过一个 makefile 下载和安装,该文件下载并编译所需的一切(在最坏的情况下,某些 lib 需要特定版本的 lib、解释器和编译器)。

      由于我的工作主要涉及小代码,我还有一个存档和过时的子文件夹到项目中,我将不再使用的东西(第一个)或已被更好的程序(过时)取代。我从不丢弃旧代码,因为它明天可能会有用。

      为了部署和使用,我有一个 python 脚本,它进入每个项目子目录并下载依赖项,编译所有内容,并将其打包为 nutz 文件(一种用于 Chestnut 包管理器实用程序的 jar 文件,也是我的)。

      不过,在大多数情况下,专业人士使用的 IDE 可以为他们完成所有工作。我不喜欢这种方法,因为经常使用和学习 IDE 比我做的事情要花费更多的时间。 IDE 的实现理念是您有业务客户和一个潜在的大型软件项目,其中涉及一个团队。目前我已经超出了这个规模,对我来说,使用复杂的 IDE 就像在海上度过了一个愉快的周末。完全超出了我目前的需求。

      【讨论】:

        【解决方案4】:

        这在很大程度上取决于您使用的编程语言。我正在用java编程,我见过的最好的结构是maven

        由于 maven 强大的依赖管理,您无需处理几十个 jar 文件。您可以使用现有的插件来完成几乎所有您能想象到的目标。您可以将项目构建为小型子项目,以实现最佳重用。

        【讨论】:

        • 哦,是的,当它工作时,它很棒。太糟糕了(至少以我非常有限的经验):我花了几个小时踢、删除、禁用和重新启用依赖项以使其工作(几天)。不确定这是 maven 的错还是可怕的 maven 设置,但我确定我遇到了很多麻烦,没有人能帮助我。我放弃了。
        • 我也讨厌 Maven。我同意管理 JAR 依赖项的想法,但 Ivy 也这样做。我认为 Maven 曾试图将 Ivy 和 Ant 结合起来,最终变成了一个臃肿的烂摊子。我特别讨厌它强加目录结构的事实。为什么我不能指定?
        【解决方案5】:

        我将所有内容都保存在版本控制存储库中(注意:一组非常令人放心的文件,以及经过测试的备份)。在我的开发机器上,我有一个 Projects 文件夹用于检出当前/最近的工作,还有一个 Projects/Archives 文件夹用于我目前未处理的旧检出。当我需要一个项目的第三方库时,它们会进入每个项目内的 third_party 文件夹。这些被跟踪一个 git 子模块,它为我提供了已知可与该项目一起使用的确切软件版本,但也可以在不同的项目中轻松更新,如果某些库不能完全满足我的需要,则进行黑客攻击等等。这个想法是每个项目都应该是独立的,并且在可靠性等合理的情况下在机器之间可移植。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-30
          • 2015-10-28
          • 1970-01-01
          • 2010-09-15
          • 1970-01-01
          • 2011-05-13
          • 2010-10-25
          • 2010-09-12
          相关资源
          最近更新 更多