Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何签出Maven POM中使用的所有依赖项?_Java_Maven - Fatal编程技术网

Java 如何签出Maven POM中使用的所有依赖项?

Java 如何签出Maven POM中使用的所有依赖项?,java,maven,Java,Maven,给定以下项目设置: 服务 服务包A 服务包B 服务包C 进程 过程1(取决于C) 流程2(取决于A&B) 过程3(取决于A&C) 应用程序 应用程序X(取决于1和3) 应用程序Y(取决于2和3) 为应用程序创建干净的构建的最佳实践是什么?这取决于您使用的是已发布版本的依赖项还是快照。当使用前者时,这并不重要,因为必要的版本将从maven存储库服务器(例如,或从磁盘缓存)的目录中提取 使用快照时,您必须手动生成快照,或者将快照发布到存储库服务器(可以使用hudson等工具实现

给定以下项目设置:

  • 服务
    • 服务包A
    • 服务包B
    • 服务包C
  • 进程
    • 过程1(取决于C)
    • 流程2(取决于A&B)
    • 过程3(取决于A&C)
  • 应用程序
    • 应用程序X(取决于1和3)
    • 应用程序Y(取决于2和3)

为应用程序创建干净的构建的最佳实践是什么?

这取决于您使用的是已发布版本的依赖项还是快照。当使用前者时,这并不重要,因为必要的版本将从maven存储库服务器(例如,或从磁盘缓存)的目录中提取

使用快照时,您必须手动生成快照,或者将快照发布到存储库服务器(可以使用hudson等工具实现自动化)。请注意,您必须按照使用顺序构建它们。一个简单的方法可以是:

  • 服务器A、B、C(任何内部订单)
  • 流程1、2、3(任何内部订单)
  • 应用程序X、Y(任何内部订单)
    我们正在使用快照和哈德逊。但是那些不应该放在哈德逊河里的分支呢?你必须手工建造它们。在分布式开发环境中,尽量避免使用快照。风险在于,两个开发人员构建相同的最终工件时,会根据他们上次更新/重建从属快照的时间产生不同的结果。是否考虑多模块构建?模块的组织将为您提供您想要的。多模块构建将如何影响这种情况?应用程序X必须包含A、C、1、3,且不得包含B、2。应用程序Y必须包含A、B、C、2、3,并且不能包含1。我们更改每个分支的快照版本。因此没有冲突。目前,每个应用程序都有一个SVN工作集,但这是应用程序POM中信息的重复。