java - 使用单独提交的 Java 包提交可执行文件
问题描述
我的应用程序有 4 个 Java 包。
com.me.utilities
com.me.widget
com.me.analysis
com.me.interface
所有软件包都依赖于实用程序。小部件包依赖于接口包。
这些实用程序可能对其他应用程序很有价值,因此它应该是一个自己的包。分析不依赖于小部件和界面,因此分析应该是它自己的一个包。接口可能会改变,因为它接口的组织可能会倒闭,所以接口应该是它自己的一个包。
这只是一个产生一个可执行文件的应用程序。
在这个组织的基础上,我对每个包进行提交,而不是对可执行文件进行提交。我想开始提交可执行文件。一种方法是将可执行文件提交到一个新的 git 存档中,而不与源代码有任何联系,但是拥有一个可执行文件并且没有正式的方式将其与源代码联系起来听起来很鲁莽。
另一种听起来有点低效的方法是简单地启动一个新的 git 存档,“添加”所有 4 个 Java 包的源代码,每个包都有许多 Java 文件,并“添加”可执行文件。这似乎有点奇怪,因为它没有尊重 4 个现有的 git 档案,这些档案已经知道它们各自的源代码集合。
将这 4 个包与它们的通用可执行文件绑定在一起的正确方法是什么?
我使用 SmartGit 进行例行提交,并使用命令行 git 进行还原。如果这个查询的解决方案有必要,我愿意停止使用 SmartGit。
解决方案
看起来您正在寻找的是一个工件存储库,例如 Nexus、Artifactory、JCenter 等。
每次发布时,您通常都会在此处发布构建生成的工件。
这也是允许构建工具和 IDE 为项目使用的库获取工件的原因。因此,如果您最终将实用程序包变成一个单独的库,供多个不同的项目使用,您需要将它发布到这样的工件存储库中。Gradle 和 Maven 都可以获得它们的工件,但也允许将工件发布到此类工件存储库。
推荐阅读
- c++ - 用于创建线程并加入可变数量线程的循环
- android - “windowSoftInputMode=stateHidden”不适用于 Instant Run
- ios - 如何检查 Firebase 实时数据库中是否已存在 childByAutoID()?
- c++ - libclang 可以告诉我一个函数是否有弱链接吗?
- c# - C# DataGridView 行未显示 - Windows 窗体已损坏
- c++ - 从二叉搜索树中删除节点 - 错误答案
- centos7 - 如何卸载 ArangoDB
- azure - 如何控制 Azure Event Grid 触发器的并发性
- javascript - 带有 JavaScript 变量的 SVG 旋转问题
- spring - Spring Boot Admin Console 2.0.4 如何使墙板不安全?