问题:你有一个压缩的 java 项目分布,它依赖于几个库,如 spring-core、spring-context、jacskon、testng 和 slf4j。任务是使事物可以离线构建。可以使用所有必需的库 jar 创建项目范围的本地存储库。
我试过这样做。看起来即使项目包含 javac 和运行时所需的 jar,构建仍然需要互联网访问。Maven 仍会潜入网络以获取构建所需的大部分自己的插件。我假设 maven 使用空的 .m2 目录运行(因为这可能是构建的第一次启动,可能是离线构建)。不,我不同意沿项目本身分发完整的 maven repo 快照,因为这对我来说看起来一团糟。
一点背景知识:更广泛的任务是创建 Windows 便携式风格的 JDK/IntelliJ Idea 分发,该分发与项目一起使用,并允许在 IDE 中进行一些最少的 Java 编码/运行,具有最少的配置和最少的 Internet 访问。该项目针对计算机班的学生,他们很少或根本无法控制系统配置。在离线模式下保持控制台构建系统完整是可取的,但我猜 maven 过度依赖网络,所以我不得不放弃它,转而使用好的老蚂蚁。
那么,您的意见是,我们能否将第一个 maven 构建完全移至离线模式?我的直觉是,最初的 maven 发行版只包含从主仓库中拉出必要插件所需的最低限度,并且如果没有至少一次看到主仓库,它就不能完全发挥作用。