我想帮助我的团队标准化到一个可再生的Java工具环境,这个环境与一些良好的实践相一致,以改进我们的工作流程。我们主要是一个.NET商店,最近做了相当多的Java开发,并且在当前的Java开发过程中被烧了太多次。
这个过程是临时性的,因为我们对Java的所有东西都是新的。每个开发人员都决定选择他们的工具(这在某种程度上是件好事),并且由于在第三方依赖管理方面缺乏任何类型的过程,我们经常会遇到构建或部署问题,并且在开发人员机器由于某种原因不得不重建时遇到严重的挫折。我们的Java开发环境在一台机器到另一台机器之间既不一致也不能重复。
我们的.NET项目没有类似的问题。每个人都运行相同版本的Visual、Resharper以及所有第三方和开源库。可能是因为我们支付了大部分的费用,但是在我们的C#项目中也有一个一致的模式,一个人所需要的一切都封装到解决方案文件中,并且这个解决方案所需的所有第三方all都被签入子目录中,这个子目录相对于源代码管理中的父解决方案。Visual在版本检查方面也有所帮助,但这个过程运行良好,我认为它可以复制到我们的Java开发工作中。
为了帮助实现这一目标,我汇编了以下问题清单,以衡量专家们在那里使用的是什么。
以粗体突出显示的项目是我们根据过去的经验正在学习的。但是,从别人正在做的事情中学习是很好的。
首先,我将回答一些问题,列出我们面临的一些问题:
编辑:只是为了增加我们有一个CI服务器,并使用Jenkins/ANT脚本来构建。
克劳斯
发布于 2013-11-21 23:05:55
我觉得你做错了。你要去一个不可维护的意大利面环境。
Java项目往往会增长到数十个或多个依赖项。你从番石榴,JodaTime,SLF4J开始.这也没什么。只是不要试图手动维护它。Maven/Gradle是必须的!
永远不要提交Eclipse工作区文件。只是不管用。
让我们从头开始吧。
如果我是在回答你的问题:
我们刚刚完成了将Ant+Eclipse-commited-workspace+3rd-paarty-libs-in-SVN项目迁移到Maven项目.
发布于 2013-11-21 22:49:33
1:我使用IntelliJ (作为以前的JetBrains雇员,我有偏见);其他人使用IntelliJ或Eclipse。我试图使用Eclipse,但非常不喜欢它。
目前,我们使用的是一个自定义的封闭源代码工具。在此之前,我们都使用了IDEA,并使用了它的依赖控制。另一组用了Maven。
3:目前,IDEA和Eclipse都有定制的构建插件,但我还是更喜欢命令行。(在Linux环境中,命令行是一个很友好的地方。)
4:没有标准化,因为IDEA似乎很好地处理来自其他版本的项目文件,只要版本没有太大的差异。不确定Eclipse的情况。
4:当我们标准化IDEA时,我们将项目文件签入VCS。现在我们没有,而是将自定义工具的构建文件保存在VCS中。
5:开发人员有他们自己对IDE的偏好(除非他们开发了非常好的IDE,否则选择是显而易见的)。我用社区版的想法。
发布于 2013-11-21 23:31:08
R1。我们使用Eclipse或其他什么,包括IntelliJ
Eclipse提供了“一流”支持:我们确保在开发环境中所做的任何更改都不会破坏任何人,并确保开发人员的体验尽可能顺畅。它也是用于培训的IDE。
也就是说,人们可以使用他们喜欢的任何环境,而且我们有大量的人使用IntelliJ。协议是,他们仍然应该遵守所有基于Eclipse的需求(例如代码格式化约定、警告设置等)--并且应该由他们来解决。
我们有一个Eclipse的“推荐”版本,但是您可以使用其他的东西--您只是属于“任何”类别。
R2。我们用maven。
maven命令行构建实际上是引用。如果在命令行中不工作,那么Eclipse中的某些东西是否工作并不重要。
Eclipse与maven都有很好的集成,因此确保maven项目顺利和正确地打开所需的额外工作是最少的。
R3。我们的构建系统基于Jenkins,因此相当于命令行构建(这是参考)。
R4。CI服务器始终是引用:您在本地使用什么并不那么重要,除非您破坏了构建(或测试),然后它可能意味着您有足够的分歧,这很重要。把它修好。
R5。我们通常使用源代码管理eclipse .project、.classpath和.settings。
虽然理论上它并不是严格要求的,而且可以生成,但是检查它们可以确保开发人员之间的一致性。它还为复杂的设置提供了便利,在这些设置中,m2e或maven-eclipse插件不太可靠,或者,为了顺利运行,IDE需要的信息略多于pom中可用的信息。(它还使导入项目的开发体验更加顺畅)。
R6。无论当时人们喜欢什么(或者认为是好的)。
https://softwareengineering.stackexchange.com/questions/219158
复制相似问题