Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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类库代码的分发_Java_Git_Jar_Dependencies_Distribution - Fatal编程技术网

java类库代码的分发

java类库代码的分发,java,git,jar,dependencies,distribution,Java,Git,Jar,Dependencies,Distribution,我需要将我拥有的一些旧java类库代码放入一个repo中,其他人可以从中检出并构建它。你知道,就像任何公开回购一样 但是,我不确定在java世界中最好的方法是什么。在旧式项目中,我们只提供构建脚本和依赖项列表。在运行构建脚本之前,您分别收集或安装了依赖项 但是现在对于许多语言,您都有从远程位置拉取的包管理器等,并且您的构建脚本需要包含依赖项获取 基本上,我不熟悉java库和程序的打包方式 我应该在回购协议中包括(依赖性)LIB吗?并在新版本发布时更新它们 java现在是否有一个包管理器来拉入最新

我需要将我拥有的一些旧java类库代码放入一个repo中,其他人可以从中检出并构建它。你知道,就像任何公开回购一样

但是,我不确定在java世界中最好的方法是什么。在旧式项目中,我们只提供构建脚本和依赖项列表。在运行构建脚本之前,您分别收集或安装了依赖项

但是现在对于许多语言,您都有从远程位置拉取的包管理器等,并且您的构建脚本需要包含依赖项获取

基本上,我不熟悉java库和程序的打包方式

我应该在回购协议中包括(依赖性)LIB吗?并在新版本发布时更新它们

java现在是否有一个包管理器来拉入最新版本的依赖项

在运行构建脚本之前,我是否让签出的人自己下载libs

如果解决方案不涉及安装大型软件包管理器,我更喜欢它。Gradle希望获得150MB以上的数据,据我所知,它在java部署中并不普遍


谢谢。

使用Maven。我相信这些天来,它很大程度上是“包管理器”(不是一个通常用来描述它的术语,但非常贴切)。它内置于Netbeans、IntelliJ IDEA中,我相信Eclipse

然而,它不仅仅是“获取最新版本”的依赖项,因为您的应用程序可能会崩溃。只有您指定的版本。因此,当有人试图在一个直接或间接获取相同libs的较新版本的应用程序中使用您的库(并且它们会进入一点“dll地狱”)时,您应该定期更新(并测试)您的代码,以减少不兼容,或者总体上减少您对第三方库的使用


您还应该考虑将您的库以编译的形式发布到Maven Central,以便使用您的库可以轻松地向POM.xml添加依赖项。毕竟,Maven解决的问题并不是让构建库变得容易(因为捆绑依赖项可以让您获得大部分的方法),而是让库的使用变得容易。

Maven和Nexus不是您想要的吗?(或者像格拉德尔、常春藤、阿奇瓦这样的替代品)是的,可能是其中之一。我只是想知道是否有一个是绝对受欢迎的。比如bundler或者ruby用户使用的任何东西。