gradle编译jar
⑴ Android Studio中gradle命令指定打jar包...
近期在项目中需要对网络访问接口进行jar封装。
在eclipse中进行指定类进行打jar包很简单,但是在android studio中则有点困难,其主要的原因是需要掌握gradle命令形式。接下来就直接上干货。
首先,在你需要进行分装jar的模块进行build.gradle文件下进行以下添加:
然后在Windos CMD中跳转到你的项目路径下,然后执行gradle makeJar命令,如果提示:gradle命令不可用。那么你需要在你的系统环境变量中进行变量的添加:
找到你的gradle插件路径进行添加,然后再在path属性的末尾进行
“;%GRADLE_HOME%\bin”添加。
然后输入 "gradle -v"或者"gradle -version"都可以.
如图就说明gradle配置成功了。
然后再cmd命令到你的项目路径下,然后再次输入gradle makeJar回车,
这里提示我们在我需要进行jar分装的模块出错了, 我们按照错误提示进行修改 ,在buold.gradle文件中添加
lintOptions {
abortOnErrorfalse
}
然后点击Sync Now。再次运行gradle makeJar。然后再一长串的编译后在末尾看到
然后我们在项目模块的build/libs文件夹下看到了我们命名的.jar文件
OK,到此就结束了。上面是个简单的例子,只能打包某个包下面的所有文件,如果要实现只打某个包下面的某些子包或者文件可参考如下示例:
taskmakeSdkJar(type:org.gradle.api.tasks.bundling.Jar){
baseName'pluginsdk'
//只打包org.cmdmac下的org.cmdmac.pluginsdk.impl和org.cmdmac.gamecenter,其他子包不会被打包进去
from('build/intermediates/classes/debug/org/cmdmac/'){
include'pluginsdk/impl'
include'gamecenter'
}
into('org/cmdmac/')
// exclude('R.class')
// exclude{ it.name.startsWith('R$');}
taskmakeSdkJar(type:org.gradle.api.tasks.bundling.Jar){
baseName'pluginsdk'
//只打包org.cmdmac下的org.cmdmac.pluginsdk.impl和org.cmdmac.gamecenter,其他子包不会被打包进去
from('build/intermediates/classes/debug/org/cmdmac/'){
include'pluginsdk/impl'
include'gamecenter'
}
into('org/cmdmac/')
// exclude('R.class')
// exclude{ it.name.startsWith('R$');}
}
⑵ 怎么用gradle反编译jar包
最简单的方法。用RadioButton控件就行了。何苦搞得这么累呢。如果真要这样做也可以就是五个控件共用一个事件同时订阅相同事件然后再判断你选中的Checkbox其他的为假代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
运行 gradle -q publish 可发布 源代码, classed-jar 包到 204 的 nexus 库。
注意:
1、 jar包的 名字(artifactId) 使用项目名称;
2、 version 设置 和 publish 的 地址要匹配, releases 地址对应到真实版本, snapshots地址对应为 snapshot版本(如:version=0.1.2.snapshot)。
3、在其他项目中引用发布的包,
只要在 build.gradle 文件的 dependencies 加类似:
compile group: 'group值', name: 'artifactId值', version: 'version值'
在 eclipse 环境下,就能查看 jar 包的源代码,自动构建 类路径。