基本的颠覆问题

时间:2010-07-12 23:28:11

标签: java version-control svn

我使用Web服务自上而下的方法在Eclipse中创建了一个Java项目(即创建一个WSDL文件并使用它来生成Skeleton Java类和带有axis2的Web服务)(因此,有很多自动生成的文件和axis2 jar库)。

我的项目具有以下文件/目录结构

- Deployment Descriptor         
- build              
- build.xml                 
- doc (i.e. generated javadoc)         
- src     
  - com.package1
  - com.package2
  - Libraries
    - Apache Tomcat 6.0 (apache jar files)
    - Web App libraries (axis2 jar files)
- lib (containing external jar files)          
- resources     
- WebContent           
  - axis2-web           
  - META-INF    
    - MANIFEST.MF    
  - WEB-INF 
    - classes
    - conf
    - lib
    - modules
    - services
    web.xml
`- wsdl (contains WSDL file`)

我想将此项目导入远程主机上的subversion存储库。应该导入哪些文件以确保任何人签出此项目可以快速启动并运行?根据我的理解,我们不会将jar文件,类文件导入到subversion存储库中。这里最好的方法是什么?我特别不确定所有的web应用程序axis2和tomcat库,以及像axis2-web,META-INF,WEB-INF(在WebContent中)的目录

2 个答案:

答案 0 :(得分:1)

我们使用的指南是:

  • 提交所有项目特定的文件
  • 不提交可由IDE创建的文件或构建脚本(临时文件)
  • 除了“工作区模板”区域外,不要提交工作区特定文件,因为它们通常包含特定于机器的路径或数据
  • 共享文件应位于“共享”或“lib”项目

最后一点类似于maven所做的:将libs存储在每个项目中,而不是存储在公共区域中。

将这些指南应用于您的项目:

  • 部署描述符:提交
  • 构建:不提交(生成)
  • build.xml:commit
  • doc(即生成的javadoc):不提交(生成)
  • SRC
    • com.package1:commit
    • com.package2:commit
    • Libraries:仅提交目录。见下面的注释
    • Apache Tomcat 6.0(apache jar文件)
    • Web App库(axis2 jar文件)
  • lib(包含外部jar文件):仅提交目录。见下面的注释
  • 资源:提交
  • 的WebContent
    • axis2-web:提交目录,如果有任何具体内容,则提交内容
    • META-INF
    • MANIFEST.MF:commit
    • WEB-INF
    • classes:不提交(生成)
    • CONF
    • lib:仅在未生成时提交。这取决于您如何设置构建脚本
    • modules:commit(我猜这不会生成)
    • 服务:提交(我想这不会生成) web.xml提交 - wsdl (contains WSDL file):commit

关于lib目录,我们在使用maven之前在我们的几个项目中所做的是,每个开发人员从一个中央“libs”项目下载了所需的jar / libs,该项目包含类似于maven的目录结构中的jar文件(vendor / libs / versioned jars)。这有助于缩短项目结账时间,并避免在各个项目中复制库。

但是,在其他设置中这些没有问题,我们更喜欢只在项目“lib”目录中提交libs。所以每次结账需要多一点,只需几分钟;拥有图书馆的副本不是问题,因为那里的项目很少,而且结帐过程更简单(只有一个结账,你就有了一切)。

我现在不记得任何其他指南:)

答案 1 :(得分:0)

由于我在项目中没有看到pom.xml,我认为没有使用Maven,并且在检出项目后无法自动获取库。这只是意味着您必须通过SVN分享所有库。我不会分享的唯一文件夹是'doc' - 那些可以重新生成。

更新:最终的方法是将项目设置为使用依赖管理系统,如Maven或Ivy。然后,您不必将库保持为源管理系统,并且检查项目的人员可以快速启动并运行它。