我正在将一个单一的 Java 应用程序分解为更小的模块,以便我们可以更好地进行测试等。我看到了大部分好处,但也看到了一些问题:
- 核心应用程序将有自己的生命周期。
- 每个模块都有自己的生命周期。
我的审讯围绕流程:我过去曾经这样做过,但需要刷新我的流程。
您遵循哪些良好做法或问题?
对于这个项目,我们使用 Maven 和 git。
编辑: 我意识到这是一个非常广泛的问题,我对此进行了简化。
最佳答案
这个问题有点宽泛,但我还是要尝试一下。
Sonatype 有两本不错的在线书籍:
当然,the Maven site本身。
Artifact 名称源自<artifactId>
和<version>
。请参阅Apache Maven JAR Plugin / Usage , Guide to naming conventions on groupId, artifactId and version还有Understanding Maven Version Numbers 。请参阅Maven Central例如其他人是如何完成的。从我的 POV 来看,一个好方法是包含 <groupId>
的最后一部分。在 <artifactId>
像Apache Commons可以。这样您就可以通过名称轻松识别 Artifact 。
“在你的 poms 中保留 -SNAPSHOT 吗?”
- 作为
<dependencies>
的消费者这取决于您是否决定仅依赖固定的发布版本,在您使用它们时其行为不会改变。或者您是否需要-SNAPSHOT
中实现的最新功能<dependencies>
的 s你使用。 - 对于项目的
<version>
你自己保留-SNAPSHOT
直到您准备好发布。发布时,您会在发布过程的短时间内更改为发布版本。之后您立即更改为更高的-SNAPSHOT
版本。
请参阅 Maven Release Plugin 中的示例用于在发布周期结束时完成的任务。
一个<dependencyManagement>
顶级父 POM 中的部分是有意义的。
Maven 和 Git 是很好的选择。 ;)
关于java - 打破单一的java应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43241318/