我正在用 JSF 开发一个私有 webapp,它可以通过 Internet 获得,现在我想将 CI(我对它相当陌生)引入整个过程。我当前的项目设置如下所示:
- myApp-persistence:处理数据库访问(DAO 和休眠的东西)的 maven 项目
- myApp-core: maven 项目,包含所有 Java 代码(Beans 和 Utils)。它依赖于 myApp-persistence.jar
- myApp-a:只有前端代码(xhtml、css、JS)的maven项目。依赖于 myApp-core.jar
- myApp-b:只有前端代码(xhtml、css、JS)的maven项目。依赖于 myApp-core.jar
myApp-a 和 myApp-b 彼此独立,它们只是两个不同平台的核心的不同实例,仅以不同方式显示某些组件或调用不同的 bean-method。
目前我正在手动部署,即使用 eclipse 内置导出作为战争功能,然后手动将其上传到产品上的 Wildfly 服务器的部署目录。我正在使用 BitBucket 进行版本控制,并且最近在 BitBucket 中发现了管道并为每个存储库实现了一个管道(每个项目都是一个单独的存储库)。现在 myApp-persistence 构建得非常好,因为所有依赖项都可以通过公共 maven 存储库访问,但是 myApp-core(因此 myApp-a 和 myApp-b 也是)当然会失败,因为 myApp-persistence 没有发布在中央 maven 存储库上。
- 是否可以以某种方式告诉 BitBucket 在 BitBucket 的相应仓库中使用 myApp-persistence.jar?
- 如果是,如何?如果包含测试的构建运行良好,我还可以告诉 BitBucket 直接部署到 prod 吗?
- 如果不是,那么最好的做法是什么?我正在考虑使用第二个开发服务器(已经可用,所以没什么大不了的)作为 CI 服务器,但我仍然需要一些关于使用哪些工具(Jenkins、artifactory 等)的建议或建议。
一个重要的提示可能是:我是唯一一个在这个项目上工作的人,所以这可能看起来有点矫枉过正,但对我来说,设置它的过程是非常宝贵的经验。也就是说,我不一定要寻找最快的解决方案,而是寻找最专业、最方便的解决方案。