Bao*_* Le 31 android android-gradle-plugin
我有一个使用Gradle和Android Studio的库和Android应用程序.我可以将库直接包含在项目中,如下所示
compile project(':library')
Run Code Online (Sandbox Code Playgroud)
因为我不想与库源代码相结合,所以我想将库发布到本地存储库中,以便我可以使用as
compile 'com.mygroup:library:1.0'
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
Bao*_* Le 49
我刚刚找到了解决方案.在库项目的build.gradle中,添加它
apply plugin: 'maven'
group = 'com.mygroup'
version = '1.0'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://[your local maven path here]")
// or repository(url: mavenLocal().getUrl())
}
}
}
Run Code Online (Sandbox Code Playgroud)
在项目文件夹中,键入以下命令
gradle uploadArchives
Run Code Online (Sandbox Code Playgroud)
阅读发布工件以获取更多信息
And*_*ejs 28
对于Android库,您应该使用Android Gradle-Maven插件https://github.com/dcendents/android-maven-gradle-plugin:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
}
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
Run Code Online (Sandbox Code Playgroud)
然后发布到本地存储库运行:
./gradlew install
Run Code Online (Sandbox Code Playgroud)
它将安装在$ HOME/.m2/repository中.在您的应用程序或其他项目中,您可以通过添加mavenLocal()到您的存储库来包含它.
或者,如果您的库位于GitHub上,那么您可以使用JitPack将其包含在其他项目中.然后你不必运行上面的命令,只需使用被推送的内容即可.
在本地maven存储库上发布de库,然后在gradle使用上发布
repositories {
mavenLocal()
}
Run Code Online (Sandbox Code Playgroud)
如果列出了其他存储库,请确保首先显示mavenLocal.
文件:关于https://gradle.org/docs/current/userguide/dependency_management.html的第51.6.4节
我更喜欢将java源代码和javadoc添加到maven资源库中.以下脚本使用android maven插件将您的android库发布到maven存储库.它创建.aar,javadoc.jar,sources.jar和.pom,并在将文件上载到maven存储库后更新maven-metadata.xml.我还把脚本放在GitHub上.
apply plugin: 'com.android.library'
apply plugin: 'maven'
//Your android configuration
android {
//...
}
//maven repository info
group = 'com.example'
version = '1.0.0'
ext {
//Specify your maven repository url here
repositoryUrl = 'ftp://your.maven.repository.com/maven2'
//Or you can use 'file:\\\\C:\\Temp' or 'maven-temp' for a local maven repository
}
//Upload android library to maven with javadoc and android sources
configurations {
deployerJars
}
//If you want to deploy to an ftp server
dependencies {
deployerJars "org.apache.maven.wagon:wagon-ftp:2.2"
}
// custom tasks for creating source/javadoc jars
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
destinationDir = file("../javadoc/")
failOnError false
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
//Creating sources with comments
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
//Put the androidSources and javadoc to the artifacts
artifacts {
archives androidSourcesJar
archives javadocJar
}
uploadArchives {
repositories {
mavenDeployer {
configuration = configurations.deployerJars
repository(url: repositoryUrl) {
//if your repository needs authentication
authentication(userName: "username", password: "password")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
叫它
./gradlew uploadArchives
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18128 次 |
| 最近记录: |