如何为在.gradle 是什么文件文件集合中的每个文件执行shell命令

Android Studio中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$');}}其中感谢以下的作者:/2015/03/shi-yong-gradle-da-bao-zhi-ding-bao-ming-he-lei-di-jar/1081人阅读
java(19)
task javaSourceGen (type:Exec){
commandLine "cp","src/main/resources-${cpEnv}/Iprotocol_bz.txt","src/main/java/com/caiqr/caipiao/wsdl/hecai/"
commandLine "mv","src/main/java/com/caiqr/caipiao/wsdl/hecai/Iprotocol_bz.txt",
"src/main/java/com/caiqr/caipiao/wsdl/hecai/Iprotocol.java"
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:72968次
积分:1862
积分:1862
排名:千里之外
原创:112篇
转载:10篇
评论:21条
阅读:3294
阅读:9109
(1)(1)(1)(3)(7)(2)(6)(1)(7)(5)(2)(2)(3)(2)(11)(7)(3)(4)(5)(2)(12)(12)(6)(14)(3)在 linux 下使用 gradle 执行命令行的问题
这个问题又花了两天时间,避免以后再次被坑,特此记录,其实回过头想想还是找问题的方式不对啊。事情是这样,我在 linux 搭建了 jenkins 进行自动构建,由 jenkins 执行 gradle 时报错 找不到文件或目录,这个问题在安装了 gradle plugin 之后,配置了一下 gradle 的安装目录之后解决了。
然后在我 gradle 的脚本中,有调用命令行构建 ExtJS 工程的命令,执行到这个 task 的时候,报错和上面一样。
12345678910
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'sencha app build'&&&&&&&&at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)&&&&&&&&at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)&&&&&&&&at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68)&&&&&&&&... 2 moreCaused by: java.io.IOException: Cannot run program "sencha app build" (in directory "/root/.jenkins/workspace/ofbiz/hot-deploy/springboot/webapp/ROOT/admin"): error=2, 没有那个文件或目录&&&&&&&&at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)&&&&&&&&... 4 moreCaused by: java.io.IOException: error=2, 没有那个文件或目录&&&&&&&&... 5 more
好吧,我沿着解决第一个问题的思路,以为是配置路径不对,或者是环境变量有问题,然后各种搜索,网上大多数的解决办法都是设置环境变量,接着我就参考别人的解决办法,添加了 jenkins 的环境变量注入插件。并且在项目构建里增加了环境变量配置。
然后再次在 jenkins 执行构建,依旧没什么卵用,还是同样的错误。这时候我突然想到会不会跟 jenkins 没什么关系呢?我直接在工程目录下使用 gradle build 命令进行构建,也复现了这个问题!好吧,看来问题是出在 gradle 上面了,此时纠结了两天的问题总算找到点线索了,这是我的 task :
1234567891011121314
task buildExtJS(type:Exec) { &&workingDir 'hot-deploy/springboot/webapp/ROOT/admin' &&def osType = System.getProperty("os.name").toUpperCase(); &&if(osType.contains("LINUX")){
//on linux:
commandLine 'sencha app build'
&&}else if(osType.contains("WINDOWS")){
//on windows:
commandLine 'cmd', '/c', 'sencha app build'
&&} &&doFirst{
&&println "Start building&&ExtJS application.." &&}}
看来是执行命令行的问题,去 gradle 官方文档查看,例子给的太简单了,commanLine 方法可以传递一个数组,接着搜了一下网上其他人的应用方式,有个老外说把命令的参数按照数组形式传递给 gradle 就行了。
commandLine 'sencha','app','build'
至此纠结了两天的问题解决了!
参考链接:
http://blog.csdn.net/ewrfedf/article/details/
/questions//in-gradle-tasks-of-type-exec-why-do-commandline-and-executable-behave-different
/questions//how-can-i-pass-environment-to-gradle-exec
/archives/10892011年5月 VB大版内专家分月排行榜第三2011年4月 VB大版内专家分月排行榜第三
2011年5月 VB大版内专家分月排行榜第一2011年4月 VB大版内专家分月排行榜第一2011年3月 VB大版内专家分月排行榜第一2011年2月 VB大版内专家分月排行榜第一2011年1月 VB大版内专家分月排行榜第一2010年12月 VB大版内专家分月排行榜第一2010年11月 VB大版内专家分月排行榜第一2002年2月 VB大版内专家分月排行榜第一2002年1月 VB大版内专家分月排行榜第一
2002年3月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 gradle 复制文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信