转自:https://blog.csdn.net/anydrew/article/details/51286998
我遇到的问题其实并不是在发布jcenter时出现的,而是在引用一个库时,库里有一段发布的代码,在研发本地环境编译都没有问题,但是在jenkins上编译就过不了,最后把库里的发布代码注释掉,加上 :
lintOptions {
abortOnError false
}
终于编译过了,这段话下面有解释,也可以自行百度了解更深层次的知识。
这期间出现的问题是编译到javadoc那段代码时报错:
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':library:javadoc'. > Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): 'D:\Program Files (x86)\Jenkins\workspace\........javadoc\javadoc.options' * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
关于这个问题也可以按Stack Overflow上的解决方法,添加:
tasks.withType(Javadoc).all {
enabled = false
}
我没有测试,我直接把发布代码注释掉了。
前言
最近尝试将项目发布到 jcenter,体验一下被 gradle 一句话引入的快感。步骤基本按照 Hongyang 文章来的,但是实际操作过程中遇到了不少的问题,着实原因大致如下:
- Android Studio 的 bintray-release 插件版本不一致
- Gradle 版本不一致,导致语法有差异
- 注释采用中文,导致无法正常生成 Javadoc
由于网上这方面的资料比较少,所以针对自己的开发环境写出解决方案,随着插件版本的升级,这些方法可能失效,但思路相同。希望跟我遇到同样问题的人,能够快速找到答案。
测试环境
Gradle: 2.10
classpath ‘com.android.tools.build:gradle:2.0.0’
classpath ‘com.novoda:bintray-release:0.3.4’
Lint found errors in the project
Lint 检查默认是开启的,Lint 会检查项目中的语法错误,如果没有通过则无法继续。只需要在 Module 的 build.gradle 添加如下代码:
android {
lintOptions {
abortOnError false
}
}
- 1
- 2
- 3
- 4
- 5
编码问题
在 windows 下 javadoc 默认的是系统编码,Windows 就是 GBK 编码。所以一旦 java 文件中出现中文注释就会报错,提示无法映射的GBK编码。
task javadoc(type: Javadoc) {
options.encoding = "utf-8"
}
- 1
- 2
- 3
Javadoc 出错
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':quickIndexView:mavenAndroidJavadocs'.
> Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): 'C:\Users\Administrator\Desktop\AS\QuickIndexView\quickIndexView\buil
d\tmp\mavenAndroidJavadocs\javadoc.options'
- 1
- 2
- 3
- 4
- 5
- 6
这个和上面的问题一样,需要 javadoc 的编码。但是我为了方便起见,去掉了 javadoc 的 task,同样也成功了。
在 Project 的 build.gradle 中加入以下代码:
tasks.getByPath(":要上传的库Model名称:mavenAndroidJavadocs").enabled = false
- 1