java - 理想的项目布局是什么样的?

标签 java svn maven-2 continuous-integration build-process

对于一个新项目,我想使用 maven-2 和 subversion。

要求是:

  • 该项目应作为一个 subversion 文件夹 check out 。
  • Maven 应该使用 super-pom 构建所有模块
  • 创建分支应该很容易(一个操作)
  • 它应该可以与持续集成一起使用(例如 hudson)

通过这种布局,似乎只需一个操作即可创建分支。

project/trunk/module-1
project/trunk/module-2
project/trunk/module-2.1
project/branches
project/tags

..
project/trunk/module-n

或者我应该更喜欢(如果是的话为什么)这种布局? 恐怕我需要根据模块的数量进行多次分支。

project/module-1/trunk
project/module-1/branches
project/module-1/tags

project/module-2/trunk
project/module-2.1/trunk

..
project/module-n/trunk

我应该使用哪种布局?

最佳答案

我们使用您提到的第一个选项,如果您只有一层模块,它效果很好。我们发现,如果有很多级别的子模块(曾经有 4 个级别的子模块),maven 就会开始感到困惑,并尝试将一个模块的依赖项添加到另一个模块(这是使用 maven 2.2.0)。

我认为第二个选项不会满足四个要求(特别是从最顶层的父pom构建整个东西)。

关于java - 理想的项目布局是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293206/

相关文章:

svn - Hudson 工作区在构建时被锁定

svn 从变更集恢复

java - 为什么接口(interface)方法在实现接口(interface)的类中不能是静态的?

java - TomCat EE - Hibernate4 & Spring4 : Session Factory ClassNotFoundException: javax. persistence.NamedStoredProcedureQuery

java - 连接池 - 为什么要在 checkin 时测试连接?

java - 如何停用子模块中的 Maven 配置文件?

web-services - maven jax-ws 插件不会从 wsdl 生成客户端类

java - 比较和通配符泛型

linux - SVN 连接器 JavaHL 未加载

java - Maven - 在 jar 中包含引用的库