当前位置: 首页 > 面试题库 >

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

常雅达
2023-03-14
问题内容

问题:您有一个压缩的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发行版仅包含将基本插件从主存储库中拉出所需的最低限度,并且在没有至少看到主存储库一次的情况下无法完全发挥作用。


问题答案:

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


 类似资料:
  • 我有什么想法可以解决这个问题吗?

  • 你知道如何在创建备用本地回购时获得这些缺失的比特吗?提前感谢!

  • 问题内容: 具体来说,我运行插件来生成文件。这仅在Windows上有效,因此我想知道是否可以在其他平台上“退出”此步骤? 插件被绑定到执行阶段,就像这样 问题答案: 您可以将该插件包装在单独的构建配置文件下,然后在所需的构建上启用该配置文件 例如: 现在在启动Maven时传递参数以指定配置文件 例如:

  • 我们有一个Spring Boot Kafka Streams处理器。由于各种原因,我们可能会遇到需要进程启动和运行的情况,但是没有我们希望订阅的主题。在这种情况下,我们只希望进程“Hibernate”,因为其他活动/环境检查器依赖于它的运行。此外,它是RedHat OCP集群的一部分,我们不希望pod不断地执行崩溃退避循环。我完全理解,在使用有效主题重新启动之前,它永远不会真正做任何事情,但没关系

  • 我正在使用JavaFX Gradle插件构建我的JavaFX应用程序。可以用不同的主类构建多个可执行文件吗?如果是,如何?

  • 我有一个JDK1.7项目,在我的maven repo中有一个本地jar的maven依赖项。 我无法使用Intellij构建项目,错误是找不到一个符号(该符号是一个从本地jar导入包的类) 但是我可以使用'mvn包‘成功地构建项目。 我花了很多时间寻找解决办法,我已经做了很多事情: 无效缓存 “mvn clean install”本地jar依赖项 在IntelliJ的maven配置中标记为“自动加载