Maven項(xiàng)目轉(zhuǎn)Gradle項(xiàng)目
將Maven項(xiàng)目拷貝到C盤用戶目錄下(其他目錄沒試過)缓窜,然后在cmd窗口中管闷,進(jìn)入Maven項(xiàng)目根目錄下粥脚,執(zhí)行g(shù)radle init --type pom 命令(可能需要在電腦上提前安裝好Gradle插件),Maven項(xiàng)目下就會自動生成Gradle對應(yīng)的配置渐北。此時(shí)項(xiàng)目既是Gradle項(xiàng)目又是Maven項(xiàng)目阿逃。可用IDEA等IDE直接導(dǎo)入該項(xiàng)目赃蛛。
用Gradle工具打Jar包步驟
- 首先恃锉,打開IDE的右側(cè)邊欄Gradle,找到:對應(yīng)module -> Tasks ->other -> release,雙擊該task呕臂,就會執(zhí)行破托。執(zhí)行完成后,會在對應(yīng)Module -> build ->libs ->lib下生成一堆jar歧蒋,這些都是打驅(qū)動Jar要用到的土砂。(這是我猜測的州既,嘿嘿)
- 然后,打開IDE的右側(cè)邊欄Gradle,找到:對應(yīng)Module -> Tasks ->other -> makeAndroidJar萝映,雙擊該task吴叶,就會執(zhí)行。執(zhí)行完成后序臂,會在對應(yīng)Module -> build ->libs下生成一個(gè)android.jar蚌卤,該jar就是最后的驅(qū)動Jar。
- makeAndroidJar task主要是將項(xiàng)目本身和打ethereum driver所需的所有依賴(release task 生成的jar)統(tǒng)一打成一個(gè)Jar奥秆;
- 打Jar的邏輯詳見makeAndroidJar task逊彭、release task 及其它相關(guān)task;
apply plugin: 'java'
apply plugin: 'idea'
jar {
String someString = ''
configurations.runtime.each { someString = someString + " lib//" + it.name }
manifest {
attributes 'Main-Class': 'com.xbs.AppMain'
attributes 'Class-Path': someString
}
}
//清除上次的編譯過的文件
task clearPj(type: Delete) {
delete 'build', 'target'
}
task copyJar(type: Copy) {
from configurations.runtime
into('build/libs/lib')
}
//把JAR復(fù)制到目標(biāo)目錄
task release(type: Copy, dependsOn: [build, copyJar]) {
into('build/libs/lib')
}
task makeAndroidJar(type: Jar, dependsOn: ['build']) {
archiveName = 'android.jar'
from('build/classes/java/main')
//下面這些jar需與build-> libs ->lib下所有jar 一一對應(yīng)
from(project.zipTree("build/libs/lib/xxx-api-1.0.jar"))
from(project.zipTree("build/libs/lib//xxx-driver-1.0.jar"))
from(project.zipTree("build/libs/lib//xxx-util-1.0.jar"))
from(project.zipTree("build/libs/lib/commons-io-2.5.jar"))
from(project.zipTree("build/libs/lib/commons-lang3-3.6.jar"))
from(project.zipTree("build/libs/lib/core-1.51.0.0.jar"))
from(project.zipTree("build/libs/lib/jackson-annotations-2.8.0.jar"))
from(project.zipTree("build/libs/lib/jackson-core-2.8.8.jar"))
from(project.zipTree("build/libs/lib/jackson-databind-2.8.8.jar"))
from(project.zipTree("build/libs/lib/javax.ws.rs-api-2.1.jar"))
from(project.zipTree("build/libs/lib/jsr305-3.0.2.jar"))
from(project.zipTree("build/libs/lib/nv-websocket-client-2.3.jar"))
from(project.zipTree("build/libs/lib/okhttp-3.8.1.jar"))
from(project.zipTree("build/libs/lib/okio-1.13.0.jar"))
from(project.zipTree("build/libs/lib/org.eclipse.paho.client.mqttv3-1.0.3.jar"))
from(project.zipTree("build/libs/lib/slf4j-api-1.7.22.jar"))
destinationDir = file('build/libs')