JAVA 生物信息软件 Flux Simulator、Astalavista、Flux Capacitor 源码临时修复及编译

今天分享一套依赖破坏的开源 JAVA 生物信息软件 Barna 项目的临时修复及编译。这套软件包括:Flux Simulator、Astalavista、Flux Capacitor,主页地址:https://confluence.sammeth.net/。在我接触到这套软件的2021年底,这套软件的源代码还可以通过一定的变通方法从 git 仓库下载到。不过却根本无法编译通过,因为其依赖的网络上的各种包和文件链接失效。但是,我发现现在已经无法从 git 仓库下载源码了。所幸,我当初下载的源码还在。于是,我将原来下载的源码和修复上传到 github( https://github.com/learndiary/barna-df )。这里,借此软件的修复,小结一下 JAVA Gradle 编译软件依赖包的修复。视频演示地址:https://www.bilibili.com/video/BV12V4y1p7Ec?share_source=copy_web&vd_source=d1925b070926f23b2b6676137251e9ea

一、软件概况

经查,可以使用 conda 上安装上面三个软件之二,命令如下:
conda install -c bioconda flux-simulator astalavista
Conda 仓库里的最新版本分别是 1.2.1 和 4.0。Conda 里面没有 Flux Capacitor 提供。
从源码的 git log 信息来看,最近的更新是 2016年8月16日。
从种种迹象看,这套软件当前的趋势应该逐渐退出历史舞台。所以,当前还在使用这套软件的普通用户应该考虑其它的替代软件了。当然,如果有实力的用户,可以考虑在这套软件的基础上自己开发。

二、源码修复

准确的说,是对源码依赖的网络无效仓库的修复,对代码本身未作任何变动。主要作了如下变动:

1、依赖仓库修复

在“build.gradle”中,把:

maven {
    url "http://artifactory.sammeth.net/artifactory/repo"
}

maven { url 'http://repo.jfrog.org/artifactory/gradle-plugins' }

换成

maven { url "https://repo1.maven.org/maven2/" }
maven { url "https://plugins.gradle.org/m2/" }
maven { url "http://hadoop-bam.sourceforge.net/maven/" }
maven { url "https://maven.aliyun.com/repository/public" }

把:

apply plugin: 'artifactory'

删掉。

在“gradle/wrapper/gradle-wrapper.properties”中,把:

distributionUrl=http\://services.gradle.org/distributions/gradle-1.2-bin.zip

中的“http”换成“https”。

2、软件包版本修复

在“barna.simulator/build.gradle”,把:

compile "jdbm:jdbm:2.3"

中失效的版本号“2.3”换成“2.4”

在“build.gradle”中,把:

classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.0.12')

中失效的版本号“2.0.12”换成“2.2.5”

3、缺失依赖包修复

有些网络仓库中找不到的依赖包,可以在网上非仓库的资源中搜索,下载到本地修复。
在“barna.astalavista/build.gradle”中,把:

compile 'sTASSEL:sTASSEL:1.0'
compile 'ledatastream:ledatastream:1.0'

换成:

compile files('../patch/libs/sTASSEL-3.0.174.jar')
compile files('../patch/libs/apktool-lib-1.4.4-3.jar')

下面的依赖包仓库("http://hadoop-bam.sourceforge.net/maven/" )不太稳定,也下载到本地修复。
在“barna.commons/build.gradle”中,把:

compile 'net.sf.samtools:samtools:1.79'

换成:

compile files('../patch/libs/samtools-1.93.jar')

三、编译安装

1、系统要求

以下操作在 Deepin 20.6 Linux 下进行,因为 JAVA 的跨平台特性,其它 Linux 发行版和操作系统应该也行。需要完整 JAVA JDK 1.7 或 1.8,必须有 java 和 javac 命令,检查:java -version 和 javac -version 会输出相应版本信息。这里使用仓库里的 openjdk-8-jdk,安装命令:sudo apt install openjdk-8-jdk。再设置环境变量 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

2、源码下载

在2021年底,还可以通过下列步骤下载到源码,不过现在(2022.08.16)好像已经下载不到了。

git config --global core.compression 0
git clone --depth 1 http://bitbucket.sammeth.net/scm/barna/barna.git
cd barna
git fetch --unshallow
git pull --all

现在可以从我上传到 github 或者 gitee 镜像的临时修复仓库中下载源码。

git clone https://github.com/learndiary/barna-df.git

或者:

git clone https://gitee.com/learndiary/barna-df.git

3、进入源码目录

cd barna-df

里面除了 patch 目录是我用于修复依赖包和更新的 README.txt 文件外,其余文件均保存原来的 barna 项目不变。

4、应用修改源码补丁

patch -p1 < patch/barna-df.patch

5、编译

for d in simulator astalavista capacitor; do cd barna.${d}; ../gradlew dist; cd ..; done

编译的结果是各自生成 tgz 和 zip 两种格式的压缩包,使用命令查看结果:

for d in simulator astalavista capacitor; do ls barna.${d}/build/distributions; done

6、使用

把上面编译成的压缩包任选一种格式的解压,进入里面的 bin 目录,Windows 下执行后缀 .bat 的那个文件,Linux 下执行没有后缀的那个文件即可。如 flux-simulator,执行示例如下:

cd barna.simulator/build/distributions
tar -xf flux-simulator-1.2.3.tgz
cd flux-simulator-1.2.3/bin
./flux-simulator --version

示例显示结果如下:

[INFO] Flux-Simulator v1.2.3 (Flux Library: 1.30)

Flux-Simulator
Version 1.2.3
Barna Library 1.30
-----------------------------------------------
Build Date Sun Aug 21 10:59:12 CST 2022
Build Version 22fc00071cadaae30d4327ac5d183b0eab2b68ce
Build Branch

其余两个软件方法一样。

四、注意事项

本人并非使用这种软件的专业人士,也非专业的 JAVA 开发人员,各位在安装使用的过程中有任何问题,欢迎交流、批评和指正。

五、参考链接

1、阿里云Maven中央仓库使用指南 https://developer.aliyun.com/mvn/guide
2、JAVA jar 文件搜索 http://www.java2s.com/Code/Jar/CatalogJar.htm

发表评论

电子邮件地址不会被公开。 必填项已用*标注