小编典典

可以将第一个Maven构建脱机吗?

java

问题:您有一个压缩的Java项目发行版,该发行版依赖于多个库,例如spring-core,spring-
context,jacskon,testng和slf4j。任务是使事物可离线构建。可以使用所有必需的库jar创建项目范围的本地存储库。

我已经尝试过了。看起来,即使项目中包含了javac和运行时所需的jar,该构建仍将需要Internet访问。Maven仍会潜入网络以获取其构建所需的大多数自己的插件。我假设Maven是使用空的.m2目录运行的(因为这可能是该构建的首次启动,可能是脱机构建)。不,我不能在项目本身上分发完整的Maven回购快照,因为这对我来说似乎是一团糟。

有点背景:更广泛的任务是创建随项目一起使用的Windows便携式JDK / IntelliJ
Idea发行版,并允许在IDE中以最少的配置和最少的Internet访问进行最少的Java编码/运行。该项目针对计算机班的学生,对系统配置的控制很少或没有控制权。对于脱机模式,最好保持控制台构建系统完整无缺,但是我想maven过于依赖于网络,因此我不得不放弃它,转而使用好的老蚂蚁。

那么,您有什么看法,我们可以完全将第一个Maven构建完全移至离线模式吗?我的直觉是,最初的Maven发行版仅包含将基本插件从主存储库中拉出所需的最低限度,并且在没有至少看到主存储库一次的情况下无法完全发挥作用。


阅读 225

收藏
2020-11-19

共1个答案

小编典典

Maven有一个“ -o”开关,它允许您离线构建:

 -o,--offline                           Work offline

当然,您将需要已经将依赖项缓存到您的库中$HOME/.m2/repository,以便构建此库而不会出错。您可以使用以下方式加载依赖项:

mvn dependency:go-offline

我尝试了此过程,但似乎无法完全正常工作。我做了:

rm -rf $HOME/.m2/repository
mvn dependency:go-offline       # lot of stuff downloaded
# unplugged my network
# develop stuff
mvn install                     # errors from missing plugins

什么 不过工作:

rm -rf $HOME/.m2/repository
mvn install                     # while still online
# unplugged my network
# develop stuff
mvn install
2020-11-19