我正在嘗試在Gradle項目中使用Sigar。 SIGAR分佈是由設置有2種類型的文件的默認:對本地依賴項使用Gradle
- 包含類的JAR
- 一些本地文件(。所以,dylib,.DLL)
我的目的是重新包裝這些以便我可以將它們用作從個人Maven存儲庫按需部署和下載的依賴項。
我的第一個嘗試是將依賴關係定義爲文件,以便檢查我的應用程序是否按照預期的那樣在重新打包前工作。下面是我用我的第一次測試的搖籃代碼工作:
dependencies {
compile files("${rootDir}/lib/sigar/sigar.jar")
runtime fileTree(dir: "${rootDir}/lib/sigar/", exclude: "*.jar")
}
然後,我已經重新包裝SIGAR本地文件到一個JAR,並更名爲另外一個,因爲我希望他們在部署到匹配行家文物規則一個Maven倉庫。下面是我得到:
- SIGAR-1.6.4.jar(包含.class文件)
- SIGAR-1.6.4-native.jar(包含名爲.dylib,。所以,在.dll文件根)
下一步是將這些文件部署到我的自定義存儲庫中。然後,我已經更新了我的build.gradle
如下:
dependencies {
compile 'sigar:sigar:1.6.4'
runtime 'sigar:sigar:1.6.4:native'
}
不幸的是,當我做了gradle clean build
,新的依賴是牽強,但本地庫不再能夠在運行時,因爲現在我得到以下異常發現:
Error thrown in postRegister method: rethrowing <java.lang.UnsatisfiedLinkError: org.hyperic.sigar.Sigar.getCpuInfoList()[Lorg/hyperic/sigar/CpuInfo;>
因此,我正在尋找解決方案來獲取並鏈接本機文件到我的Java應用程序,就像其他依賴項一樣。任何建議,意見,建議,幫助,解決方案等,歡迎;)