我已经阅读了如何获取我拥有的jar文件并将其添加到maven中的依赖系统link
但我想要的是,我有一组30到40个jar文件,我必须添加到依赖系统 . 我是否需要使用添加所有jar文件
- mvn install:install-file -DgroupId = com.stackoverflow ... -DartifactId = yourartifactid ... -Dversion = 1.0 -Dpackaging = jar -Dfile = / path / to / jarfile,
其次是,
2 .
<dependencies>
...
<dependency>
<groupId>com.stackoverflow...</groupId>
<artifactId>artifactId...</artifactId>
<version>1.0</version>
</dependency>
...
</dependencies>
或者有一种简单的方法,我可以使用mvn:install将所有相关的jar文件包装到一个maven项目中,我的主项目可以依赖于哪个?
提前致谢 .
2 回答
如果您引用的30-40个jar文件中的大多数是标准的开源库,那么您不需要手动将它们
install
到本地存储库 . 它们中的许多也可能是transitive
,也就是说其中一个又是另一个 . 在这种情况下,您只需要添加主要依赖项作为dependency
. 这将反过来拉动传递的 .如果大多数依赖项是专有的并且您自己管理它们,那么很可能在源代码管理系统中将它们放在某个特定文件夹中,比如
lib
. 如果是这样,您可以跳过install
步骤,并使用<system>
范围指定dependencies
(请参阅here) .你可以定义一个maven项目(如
pom
类型)来指定所有的dependencies
并让你的主项目依赖它,如果是simplifies
的话 .这个_2839723中的第一个答案真的解决了我的疑问..
“项目应明确列出所有依赖项,而不是依赖继承它们(恕我直言) . 这意味着你必须多次声明你的 Logger ,但它会在以后为你节省时间 . (你当然可以使用一个单独的POM项目组合在一起相关的依赖关系,因此通常一起指定,如链接中的hibernate示例 . 如果要集中依赖项的版本,可以将dependencyManagement部分放在父POM中,这意味着您仍然在子项目中声明依赖项,但版本来自父母,因此确保了一致性 . 没有声明依赖关系的孩子根本不会完全依赖它 . “
因此,实践应该是为所有依赖项创建单独的POM(子)项目,如果需要,我们可以使用聚合将它们包装到Parent-POM中,这可以在我们的项目中单独引用 . 但是,我们必须为每个依赖JAR单独创建一个子项目 . 比特时间采取过程,但似乎是唯一的答案 .