我们在我们的项目中使用clirr(http://clirr.sourceforge.net),但它看起来已经过时了。我尝试搜索任何替代方法,但它们处于同一位置:
因此,我正在寻求社区帮助:您如何解决检查源代码和二进制文件兼容性的问题?
您也可以尝试japicmp,这是我最近在尝试执行相同任务时发现的一个简洁项目。
它的用法非常简单,并且可以将打包为JAR的两个版本的库传递给它……例如:
java -jar japicmp-0.0.2.jar -n my-jar-new.jar -o my-jar-old.jar
它还具有一个API,可让您以编程方式使用它。
该项目的Github页面上有一个直接的入门指南。
我们可以使用JDK 1.8编译器编译源兼容性选项设置为1.7的源代码吗? ModuleA将此设置为1.7,ModuleB和ModuleC将此设置为1.8。我应该使用什么编译器来编译上述所有模块。我假设它应该是JDK 1.7。
我有一个使用groovy插件的gradle项目。groovy还交叉编译java类。没有java插件,只有和更高版本的 intellij导入了该项目,但它使用sourceCompatibility<1.8(系统中只安装了Java8)。工作时没有任何问题。 向.gradle文件添加什么使intellij使用1.8 SourceCompatibility?
问题内容: 我的一些同事相信,将构建工件提交到Subversion存储库是一个好主意。争论在于通过这种方式,在测试机器上的安装和更新很容易-只需“向上”! 我敢肯定,有人反对这种不良做法,但我能想到的只是la脚的,例如“占用更多空间”。什么是最好的杀手级理由不这样做?而我们应该采取哪些其他方法呢? 如果这有所不同,则用于Java代码。一切都是从Eclipse编译的(没有自动PDE构建)。 当我说添
问题内容: 我最近开始了一个Django项目,并很快意识到,由于多种原因,virtualenv真的很有用。我设置了virtualenv和我的项目,但是现在我想知道应该将哪个文件添加到源代码管理(在我的情况下是Mercurial)。我应该在venv文件夹下添加所有文件吗?如何确保同事可以克隆并立即开始工作而无需再次设置环境? 问题答案: 你会生成一个与项目一起提交的“需求”文件(通常是): 然后,每
难道不应该从它的二进制文件中获得源代码吗?既然编译是将高级语言(源代码)转换为低级语言(机器代码)的过程,难道我们不能为了获得源代码而直接反转这个过程吗?如果没有,为什么?
问题内容: 在项目17:“仅使用接口定义类型”中,我遇到了不建议使用接口存储常量的解释。我在下面说明。 “更糟糕的是,它表示一种承诺:如果在将来的发行版中对该类进行了修改,使其不再需要使用常量,则它仍必须实现该接口以确保二进制兼容性。” 二进制兼容性在这里意味着什么? 有人可以用Java的例子指导我,说明代码是二进制兼容的。 问题答案: 简而言之,二进制兼容性意味着更改类时,无需重新编译使用它的类