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
Maven:不建议从一个项目中生产两个罐子。为什么?_Maven_Modularity_Maven Jar Plugin - Fatal编程技术网

Maven:不建议从一个项目中生产两个罐子。为什么?

Maven:不建议从一个项目中生产两个罐子。为什么?,maven,modularity,maven-jar-plugin,Maven,Modularity,Maven Jar Plugin,我想生成第二个人工制品的情况是这样的。我们在测试代码中有构建器类,我希望在另一个项目中重用这些类。我找到了这个,它很好用。在与同事讨论之后,我读了Tim O'Brien的这篇文章。他写道,这样做违反了maven的核心惯例 “它违反了Maven最重要的核心概念之一:模块化。一旦你走上这条路,你可能会开始创建越来越多的创建多个JAR的“优步”项目。” 我不认为测试罐有这种风险 “这不是推荐的”或“它打破了核心惯例,但它有效”的唯一说法并不能让我满意。至少maven提供了分类器,这些分类器正好用于从同

我想生成第二个人工制品的情况是这样的。我们在测试代码中有构建器类,我希望在另一个项目中重用这些类。我找到了这个,它很好用。在与同事讨论之后,我读了Tim O'Brien的这篇文章。他写道,这样做违反了maven的核心惯例

“它违反了Maven最重要的核心概念之一:模块化。一旦你走上这条路,你可能会开始创建越来越多的创建多个JAR的“优步”项目。”

我不认为测试罐有这种风险

“这不是推荐的”或“它打破了核心惯例,但它有效”的唯一说法并不能让我满意。至少maven提供了分类器,这些分类器正好用于从同一pom生成不同的工件

我的问题: 创建一个测试jar是一个例外,还是这个方法有更严重的问题


此外。让生成器类成为生产代码的一部分是我们正在讨论的另一个选项。但这不是本文的重点。

我已经写过关于测试jar的缺点。主要问题是,您无法获得您可能期望的所有(可传递的)依赖关系。

我所拥有的可重用测试类的问题是它们引用了项目中的类。因此,如果我将测试类放在一个单独的项目中,并将它们导入回去,我会得到一个循环依赖关系。对我来说,这意味着你的项目结构不正确,或者你在测试错误的东西。正确结构的一个好例子是
org.springframework:spring-test