Java Maven依赖项可以从公共用途中删除吗?

Java Maven依赖项可以从公共用途中删除吗?,java,maven,dependencies,pom.xml,Java,Maven,Dependencies,Pom.xml,我在工作中的一个项目中使用Maven,我使用了几个依赖项,如ApachePOI、Commons IO、Google Guava等。但是,我的一位同事担心,在未来,这些依赖项中的一些可能会被作者删除,不再可用,这将破坏我们的项目构建;例如,如果未来的开发人员必须重建项目mvn clean build,那么这些依赖关系是否仍然存在。是否可以删除Maven依赖项?或者,一旦它们被提供给Apache或公共存储库,它们就永远在那里了?在Maven Central上发布的工件无法删除。这是故意的,没有这个安

我在工作中的一个项目中使用Maven,我使用了几个依赖项,如ApachePOI、Commons IO、Google Guava等。但是,我的一位同事担心,在未来,这些依赖项中的一些可能会被作者删除,不再可用,这将破坏我们的项目构建;例如,如果未来的开发人员必须重建项目
mvn clean build
,那么这些依赖关系是否仍然存在。是否可以删除Maven依赖项?或者,一旦它们被提供给Apache或公共存储库,它们就永远在那里了?

在Maven Central上发布的工件无法删除。这是故意的,没有这个安全网,任何使用这些工件的人都不能在将来依赖它们,也不能为了重建自己软件的历史版本而依赖它们

发件人:

我可以更改发布到中央存储库的工件吗?

否。组件发布到中央存储库后,将无法对其进行更改。这条规则是为了保持未来的稳定性和兼容性

注:“无法更改”表示对工件无更改未移除工件

所以,只要你是从Maven Central采购,那么这个

。。。在将来,这些依赖项中的一些可能会被作者删除,不再可用,这将破坏我们的项目构建

。。。这不是一个问题


此外,即使Maven Central不再存在(也没有什么东西能取代它),您提到的工件(Apache POI、Commons IO、Google Guava)都是开源的,因此您可以自己构建工件并为自己提供服务。

一旦构建项目,所有依赖项都会下载到构建文件中。因此,您不必担心任何这样的更改。您可以配置一个本地maven存储库,其中可以包含所有使用的依赖项并对它们进行控制。