java调用libtorrent_build.gradle

这个博客展示了如何使用Gradle脚本来构建Java项目,以便调用libtorrent库。脚本包含了针对不同平台(macOS, Windows, Linux, Android)的库打包任务,并配置了上传到Maven仓库的相关设置。" 133106035,19974230,Netlink在单片机通信中的应用解析,"['嵌入式硬件', '单片机']
摘要由CSDN通过智能技术生成

apply plugin: 'java'

apply plugin: 'signing'

apply plugin: 'maven'

group 'com.frostwire'

archivesBaseName = 'jlibtorrent'

version '1.2.0.6-beta3'

sourceCompatibility = '1.7'

targetCompatibility = '1.7'

if (!hasProperty('ossrhUsername')) {

ext.ossrhUsername = ''

}

if (!hasProperty('ossrhPassword')) {

ext.ossrhPassword = ''

}

repositories {

mavenCentral()

}

dependencies {

testCompile 'junit:junit:4.12'

}

test {

testLogging {

events "passed", "skipped", "failed"

}

environment "LD_LIBRARY_PATH": new File('.').absolutePath

}

task sourcesJar(type: Jar) {

classifier = 'sources'

from sourceSets.main.allSource

}

task javadoc2(type: Javadoc) {

source = sourceSets.main.allJava

failOnError false

}

task javadocJar(type: Jar, dependsOn: javadoc2) {

classifier = 'javadoc'

from javadoc2.destinationDir

}

task nativeMacOSXJar(type: Zip) {

destinationDir file("$buildDir/libs")

baseName 'jlibtorrent-macosx'

extension 'jar'

from fileTree(dir: 'swig/bin/release/macosx', excludes: ['**/ed25519', '**/src'], include: '**/*libjlibtorrent.dylib')

into 'lib/'

}

task nativeWindowsJar(type: Zip) {

destinationDir file("$buildDir/libs")

baseName 'jlibtorrent-windows'

extension 'jar'

from fileTree(dir: 'swig/bin/release/windows', excludes: ['**/ed25519', '**/src'], include: '**/*jlibtorrent.dll')

into 'lib/'

}

task nativeLinuxJar(type: Zip) {

destinationDir file("$buildDir/libs")

baseName 'jlibtorrent-linux'

extension 'jar'

from fileTree(dir: 'swig/bin/release/linux', excludes: ['**/ed25519', '**/src'], include: '**/*libjlibtorrent.so')

into 'lib/'

}

task nativeAndroidArmJar(type: Zip) {

destinationDir file("$buildDir/libs")

baseName 'jlibtorrent-android-arm'

extension 'jar'

from fileTree(dir: 'swig/bin/release/android', include: 'armeabi-v7a/libjlibtorrent.so')

into 'lib/'

}

task nativeAndroidX86Jar(type: Zip) {

destinationDir file("$buildDir/libs")

baseName 'jlibtorrent-android-x86'

extension 'jar'

from fileTree(dir: 'swig/bin/release/android', include: 'x86/libjlibtorrent.so')

into 'lib/'

}

task nativeAndroidArm64Jar(type: Zip) {

destinationDir file("$buildDir/libs")

baseName 'jlibtorrent-android-arm64'

extension 'jar'

from fileTree(dir: 'swig/bin/release/android', include: 'arm64-v8a/libjlibtorrent.so')

into 'lib/'

}

task nativeAndroidX64Jar(type: Zip) {

destinationDir file("$buildDir/libs")

baseName 'jlibtorrent-android-x86_64'

extension 'jar'

from fileTree(dir: 'swig/bin/release/android', include: 'x86_64/libjlibtorrent.so')

into 'lib/'

}

artifacts {

archives sourcesJar

archives javadocJar

archives nativeMacOSXJar

archives nativeWindowsJar

archives nativeLinuxJar

archives nativeAndroidArmJar

archives nativeAndroidX86Jar

archives nativeAndroidArm64Jar

archives nativeAndroidX64Jar

}

signing {

required { gradle.taskGraph.hasTask("uploadArchives") }

sign configurations.archives

}

uploadArchives {

repositories {

mavenDeployer {

beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

addFilter('jlibtorrent') { artifact, file ->

artifact.name == 'jlibtorrent'

}

addFilter('jlibtorrent-macosx') { artifact, file ->

artifact.name == 'jlibtorrent-macosx'

}

addFilter('jlibtorrent-windows') { artifact, file ->

artifact.name == 'jlibtorrent-windows'

}

addFilter('jlibtorrent-linux') { artifact, file ->

artifact.name == 'jlibtorrent-linux'

}

addFilter('jlibtorrent-android-arm') { artifact, file ->

artifact.name == 'jlibtorrent-android-arm'

}

addFilter('jlibtorrent-android-x86') { artifact, file ->

artifact.name == 'jlibtorrent-android-x86'

}

addFilter('jlibtorrent-android-arm64') { artifact, file ->

artifact.name == 'jlibtorrent-android-arm64'

}

addFilter('jlibtorrent-android-x86_64') { artifact, file ->

artifact.name == 'jlibtorrent-android-x86_64'

}

repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {

authentication(userName: ossrhUsername, password: ossrhPassword)

}

snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {

authentication(userName: ossrhUsername, password: ossrhPassword)

}

pom('jlibtorrent').withXml {

asNode().children().last() + pomData()

}

pom('jlibtorrent-macosx').withXml {

asNode().children().last() + pomData()

addDependency(asNode())

}

pom('jlibtorrent-windows').withXml {

asNode().children().last() + pomData()

addDependency(asNode())

}

pom('jlibtorrent-linux').withXml {

asNode().children().last() + pomData()

addDependency(asNode())

}

pom('jlibtorrent-android-arm').withXml {

asNode().children().last() + pomData()

addDependency(asNode())

}

pom('jlibtorrent-android-x86').withXml {

asNode().children().last() + pomData()

addDependency(asNode())

}

pom('jlibtorrent-android-arm64').withXml {

asNode().children().last() + pomData()

addDependency(asNode())

}

pom('jlibtorrent-android-x86_64').withXml {

asNode().children().last() + pomData()

addDependency(asNode())

}

}

}

}

def pomData() {

return {

resolveStrategy = Closure.DELEGATE_FIRST

name 'frostwire-jlibtorrent'

description 'A swig Java interface for libtorrent by the makers of FrostWire.'

url 'https://github.com/frostwire/frostwire-jlibtorrent'

scm {

connection 'scm:git:git://github.com/frostwire/frostwire-jlibtorrent.git'

developerConnection 'scm:git:ssh:git@github.com/frostwire/frostwire-jlibtorrent.git'

url 'https://github.com/frostwire/frostwire-jlibtorrent'

}

licenses {

license {

name 'The MIT License'

url 'https://github.com/frostwire/frostwire-jlibtorrent/blob/master/LICENSE.md'

}

}

developers {

developer {

id 'gubatron'

name 'Angel Leon'

email 'gubatron@gmail.com'

}

developer {

id 'aldenml'

name 'Alden Torres'

email 'aldenml@gmail.com'

}

}

}

}

def addDependency(root) {

def dependenciesNode = root.dependencies[0]

if (!dependenciesNode) {

dependenciesNode = root.appendNode('dependencies')

}

def depNode = dependenciesNode.appendNode('dependency')

depNode.appendNode('groupId', group)

depNode.appendNode('artifactId', archivesBaseName)

depNode.appendNode('version', version)

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值