jjzjj

Versioning

全部标签

java - 您如何决定何时升级项目中的库?

我从事的项目使用多个开源Java库。当这些库的升级出来时,我们倾向于遵循保守的策略:如果它没坏,就不要修理它如果它没有我们想要的新功能,请忽略它我们遵循这个策略是因为我们通常没有时间放入新库并彻底测试整个应用程序。(与许多软件开发团队一样,我们在几个月前promise的功能方面总是落后于时间表。)但是,我有时想知道这种策略是否明智,因为一些性能改进和大量错误修复通常伴随着库升级。(即“谁知道呢,也许事情会以我们没有预见到的方式变得更好......”)当您在项目中做出这些类型的决策时,您使用什么标准? 最佳答案 重要:避免Techni

java - 如何使用 Scala (50.0/51.0) 发出更新的类文件版本?

我想用scalac创建的类测试新的类型检查字节码validator。scalac目前输出49.0版类文件,但新的类型检查validator仅在51.0版后才强制使用。我尝试使用ProGuard“预验证”类(实际上将它们转换为50.0版),但我不确定新validator是否自动回退到旧的类型推断validator。如何将类文件转换为51.0版(或者如何找出在加载50.0版类文件时使用的validator)? 最佳答案 似乎FJBG(NSC用来生成字节码的库)一些努力支持StackMap但我不知道它有多远。如果您询问scala-inte

java - 在 Java 和 Eclipse 中管理对库的多个版本的依赖性

在Eclipse环境中,我有项目A。A依赖于项目或库B和C。(如果它们是项目或库,则没有区别)B依赖于LibX.v1,C依赖于LibX.v2。在运行时,A将需要B.jar和C.jar。B.jar中的类也需要LibX.v1,而C.jar中的类需要LibX.v2。作为同一个库的不同版本,LibX.v1和LibX.v2具有相同的类,因此在运行时可能会从错误版本的库中加载一个类,从而造成很多麻烦。我该如何处理这些情况?亲切的问候塞夫 最佳答案 真的,你不知道。大多数Java类加载器不对库的加载顺序提供任何保证,因此您确实需要确保不要在类路径

java - 如何在我们的 java jar 中插入用户可以访问的版本号?

我们有一个库,每两周发布一次不同的版本号。问题是为了在我们的jar中存储版本号,我们有一个version.txt文件,它只包含版本号,然后被包含到构建中。这似乎是错误的方法,但我想不出更好的解决方案。有什么更好的方法可以将版本号存储在我们的jar中,以便如果用户调用我,我可以轻松找到他们正在使用的我们产品的版本? 最佳答案 首先——确保您的程序或工具可以显示版本号。但它从何而来?我们将其包含在构建中。只要确保它在运行时在某个地方可见即可!如果没有可运行的东西,添加一个Main,并使其成为Main-Class,它只打印版本。然后你可以

java - 您如何对项目进行版本控制和管理发布?

我们的情况如下,但是我对这个问题在任何情况下都很好奇。我们有一个由4个项目组成的框架:bean效用框架网络我们还有一些模块需要一个版本并依赖于beans和util的一个版本。最后我们有一个客户项目,它由一个特定版本的核心项目和一个或多个模块组成。是否有对这些项目进行版本控制的标准方法?在我看来简单的事情变得非常复杂,因为我们尝试将发布交付给QA,然后通过维护发布(发布=标签和可能的分支)来管理我们正在进行的开发。我更喜欢以下内容:1.2.0-主要和次要版本+发布。1.2.1-下一个版本1.2.0_01-1.2.0版本(分支)中的错误修复等等有什么想法吗? 最

java - 不重置版本号的最后一位是否有意义

我们正在改变我们的中间件(MW)软件的版本控制和依赖系统,我们正在考虑这样的事情:a.b.c.da-主要版本b-向后兼容性中断c-新功能d-错误修复但有一点不同,因为由于软件的大小和缓慢的网络,我们必须将发送给客户的包数量保持在最低限度。因此,我们的想法是仅在向后兼容性更改时重置错误修复编号。使用这个逻辑,我们可以创建一个自动系统,如果客户端已经安装的版本有任何错误更改,并且它符合新前端(FE)的要求,它只会生成一个新包。为了更好地展示这一切场景,这里有几个例子:增量逻辑需要包决策逻辑虽然这是一个非标准的版本控制逻辑,但是你们看到这个逻辑有什么问题吗? 最佳

java - 最佳实践 : Versioning and releases in multiprojects

在以下多项目案例中,版本控制和发布管理的最佳实践是什么?项目结构全局母公司父项目(版本:1.0-SNAPSHOT)子项目1(与父项目相同)子项目2(与父项目相同)子项目3(与父项目相同)子项目4(与父项目相同)…我只想为父项目和所有子项目设置一次版本,因为项目的每一部分都必须具有相同的版本。另外我想要的是,用continuum/maven发布项目。当前的“坏”解决方案:通常,一个简单的方法应该是在父pom中设置版本,并在每个child中说“父版本的最后一个版本”,但这不适用于maven例子:父级com.testcom.test.buildDefinition1.0-SNAPSHOTch

java - Maven 和 GitHub 的版本编号/发布机制

我正在尝试找到管理我的工作流程的最佳方式,以允许使用Maven和Git进行版本编号和发布。目前我的工作流程是:编辑pom.xml以指示新快照版本“1.2.3-SNAPSHOT”使用消息“在1.2.3-SNAPSHOT上开始工作”提交到git做编码工作,在每次成功的“mvn测试”等之后提交。对版本满意后,将pom.xml版本编辑为“1.2.3”提交消息“1.2.3发布”添加标签“1.2.3”部署代码(例如推送到外部Maven存储库)转到1。我在“主”分支中完成所有工作,除非我需要做一些实验(在这种情况下我切换到一个新分支,定期merge)这是一个明智的工作流程吗?我可以改进它的任何方法。

java - 平台强制版本控制机制是 Java 最需要的特性吗?

作为开发人员,我经常对可以让您的生活更轻松的新语言功能感兴趣。例如,Java5为该语言带来了泛型和注释,这些功能绝对可以提高您的工作效率。然而,当我回顾将近十年在Java平台上的工作时,我发现与版本控制相关的问题是效率低下和不必要的努力的最大罪魁祸首。寻找正确版本的jar、试图调和一些版本控制冲突、升级依赖库等的时间和时间。当我开始使用Java工作时,事情并没有那么困难,你会有一些第3方库,仅此而已.今天,您的典型Web应用程序可能很容易使用:SpringFramework、Hibernate、Struts,应有尽有。所有这些都带有许多依赖的第3方库。今天,我的耳朵文件通常包括大约40

java - 如何检查两个 Java 类在语义上是否相同?

我需要合并两个类似的大型项目(1000多个类)。第二个是第一个的分支,它包含一些国家特定的行为。这两个项目分歧很大,因为svn版本控制处理得非常糟糕。经常会发生两个类在语义上相同的情况。它们的源代码仅在警告、导入语句、某些方法或变量的顺序、代码格式、注释等方面有所不同。有没有办法自动检查两个类在语义上是否相同? 最佳答案 您应该考虑使用程序分析工具,例如Soot.Soot有一些优秀的API来分析最适合您目的的代码。例如,要检查两个类是否“语义相同”,您可以考虑(1)两个类是否具有相同(或相似的字段)(2)两个类具有相同(或相似的方法