2009-09-20 81 views
2

我有一个文件夹,包含我所有的项目,使用不同的语言。然后我得到了我最终可能在我的代码中使用的库(主要是jar文件)。我确定有一个公认的做法,对吧?专业人员做什么?你如何组织你的开发环境

+0

使用搜索,你会发现很多关于这方面的信息。 – markus 2009-09-20 15:19:29

+0

@tharkun:可能是的,但这将作为专业搜索的好起点 – 2009-09-20 15:22:36

+0

Duplicate:http://stackoverflow.com/questions/395486/how-do-you-manage-and-organize-your-files-脚本-repos-downloads-pdfs-etc,http://stackoverflow.com/questions/997149/best-way-to-organize-the-files-in-my-project等 – gnovice 2009-09-20 17:19:20

回答

0

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

  1. Src在.java文件,使用包层次
  2. lib中的第三方JAR文件,除非我让他们从一个存储库(例如,Spring发行版)
  3. 测试JUnit或TestNG测试文件
  4. 资源或配置.properties ,.XML等
  5. 网站如果它是一个Web应用程序,其中包含WEB-INF和所有的服务员
  6. 文档,如果我有任何文件

我喜欢春天人们已经发展结构。

我使用IntelliJ,所以我想要任何结构,我必须很好地玩它。

我有一个目录/工作,保持我所有的Subversion工作副本。

1

这真的取决于您使用的工具,以及您想如何组织它。

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

我想你需要弄清楚什么对你最好。

1

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

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

我还为项目开发了特定的运行时。每个运行时都通过一个makefile下载并安装,该文件下载并编译所有内容(在最坏的情况下libs,解释器和编译器需要一些lib需要它的特定版本)。由于我的工作主要涉及小代码,因此我还有一个已归档和过时的子文件夹放入项目中,在那里我放置了我不再使用的东西(第一个)或已被更好的程序替代(过时)。我从不丢弃旧代码,因为它明天可能会有用。

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

然而,在大多数情况下,专业人员使用IDE来为他们做所有事情。我不喜欢这种方法,因为经常使用和学习IDE需要更多的时间,而不是做我所做的。这些IDE的实施意见是,您有业务客户,并且有一个涉及团队的潜在大型软件项目。目前我已经超出了这个规模,对我而言,使用复杂的IDE就好比是在海上度过了一个跨大西洋的周末。完全超出我目前的需求。

0

它高度依赖于您使用的编程语言。我用java编程,我看到的最好的结构由maven给出。

由于maven的良好依赖管理,您不需要混淆数十个jar文件。您可以使用现有的插件来完成您可以想象的几乎每个目标。而且您可以在小型子项目中构建项目以实现最佳重用。

+0

哦,是的,当它工作, 这很棒。太糟糕了,它永远不会(至少在我非常有限的经验):我花了几个小时踢,删除和禁用和重新启用依赖关系,使其工作(几天)。不知道这是Maven的错还是一个可怕的Maven设置,但我确信我有很多麻烦,没有人能够帮助我。我放弃。 – 2009-09-20 15:38:29

+0

我也讨厌Maven。我同意管理JAR依赖关系的想法,但常春藤也这样做。我认为Maven已经试图将艾维和蚂蚁结合起来,并最终成为一个臃肿的混乱。我特别讨厌它强加一个目录结构的事实。为什么我不能指定它? – duffymo 2009-09-20 15:42:30

0

我拥有版本控制存储库中的所有内容(nb:非常令人放心的一组文件,并且已经测试过备份)。在我的开发机器上,我有用于检出当前/最近工作的Projects文件夹,以及用于旧版检出的Projects/Archives文件夹,目前我尚未使用该文件夹。当我需要一个项目的第三方库时,他们会进入每个项目内的第三方文件夹。这些跟踪git submodules,它给了我知道与该项目一起工作的确切的软件版本,但也容易在不同的项目中更新,如果某些图书馆没有完成我需要的功能,就会发生黑客攻击等等。是每个项目应该是独立的和便携式的机器之间尽可能合理的可靠性等