sna*_*ggs 7 android gradle android-studio android-gradle-plugin
我想在maven中发布我的SDK $ ./gradlew uploadArchives
我有这个项目结构:
MyProject
|_ SDK
|_ src
|_ main
|_ java
|_ java files
|_ build.gradle
|_ gradle
|_ gradle-publish.gradle
Run Code Online (Sandbox Code Playgroud)
我使用了以下代码(gradle-publish.gradle)按预期工作:
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
uploadArchives {
repositories {
mavenDeployer {
/* ... */
}
}
}
artifacts {
archives sourcesJar
archives androidJavadocsJar
}
Run Code Online (Sandbox Code Playgroud)
现在我主要分裂模块,2:SDK和new_module所以我的项目结构是这样的:
MyProject
|_ SDK
|_ src
|_ main
|_ java
|_ java files "com.app"
|_ build.gradle
|_ new_module
|_ src
|_ main
|_ java
|_ java files "com.app.mod"
|_ build.gradle
|_ gradle
|_ gradle-publish.gradle
Run Code Online (Sandbox Code Playgroud)
然而,无论我做什么,我总是只得到SDK资源而不应该与new_moduleae com.app合并com.app.mod
我尝试玩,sourceSets但看起来它在主模块内工作,SDK而不是在根项目下:
sourceSets {
main{
java {
srcDirs(
"src/main/java",
"../new_module/src/main/java"
)
}
}
Run Code Online (Sandbox Code Playgroud)
和:
task sourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
Run Code Online (Sandbox Code Playgroud)
任何想法,提示?
编辑
我补充道
sourceSets {
main{
java {
srcDirs("src/main/java",
"${root_dir}/new_module/src/main/java"
)
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是在maven上我看到所有都有源但classes.jar只包含app .class文件
在您的部分sourceSet下添加自定义:androidSDK build.gradle
android{
//...
sourceSets {
main{
java {
srcDirs "$rootDir/new_module/src/main/java/"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您不需要包含"src/main/java"- 它已经包含在内
另外,您不需要绑定new_module到您的依赖项,它将成为您模块new_module的一部分SDK
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |