ProjectScopeServices에 팩토리 유형의 서비스가 없습니다.


127
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

// load properties
Properties properties = new Properties()
File localPropertiesFile = project.file("local.properties");
if(localPropertiesFile.exists()){
    properties.load(localPropertiesFile.newDataInputStream())
}
File projectPropertiesFile = project.file("project.properties");
if(projectPropertiesFile.exists()){
    properties.load(projectPropertiesFile.newDataInputStream())
}

//read properties
def projectName = properties.getProperty("project.name")
def projectGroupId = properties.getProperty("project.groupId")
def projectArtifactId = properties.getProperty("project.artifactId")
def projectVersionName = android.defaultConfig.versionName
def projectPackaging = properties.getProperty("project.packaging")
def projectSiteUrl = properties.getProperty("project.siteUrl")
def projectGitUrl = properties.getProperty("project.gitUrl")

def developerId = properties.getProperty("developer.id")
def developerName = properties.getProperty("developer.name")
def developerEmail = properties.getProperty("developer.email")

def bintrayUser = properties.getProperty("bintray.user")
def bintrayApikey = properties.getProperty("bintray.apikey")

def javadocName = properties.getProperty("javadoc.name")

group = projectGroupId

install {
    repositories.mavenInstaller {
        pom {
            project {
                name projectName
                groupId projectGroupId
                artifactId projectArtifactId
                version projectVersionName
                packaging projectPackaging
                url projectSiteUrl
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                        id developerId
                        name developerName
                        email developerEmail
                    }
                }
                scm {
                    connection projectGitUrl
                    developerConnection projectGitUrl
                    url projectSiteUrl
                }
            }
        }
    }
}

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

javadoc {
    failOnError false

    options{
        encoding 'UTF-8'
        charSet 'UTF-8'
        author true
        version projectVersionName
        links "http://docs.oracle.com/javase/7/docs/api"
        title javadocName
    }
}

bintray {
    user = bintrayUser
    key = bintrayApikey
    configurations = ['archives']
    pkg {
        repo = "maven"
        name = projectName
        websiteUrl = projectSiteUrl
        vcsUrl = projectGitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

이것을 사용하여 bintray에 코드를 업로드하면 오류가 발생할 수 있습니다 : No service of type Factory available in ProjectScopeServices. gradle 2.10을 사용하면 정상적으로 실행될 것입니다.


저도 같은 문제가 여기에보고 : code.google.com/p/android/issues/detail?id=219692를 (슬프게 잘 편집 타이틀을하지 않았다)
안드로이드 개발자를

답변:


396

프로젝트 build.gradle 파일에서 maven gradle 플러그인 버전을 1.4.1로 변경하십시오.

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.2'
    classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
}

이 버전이 업로드 되었습니까?
Fang

이 종속성과 클래스 경로 청크가 build.gradle 파일의 빌드 스크립트 섹션에 들어가야합니까?
Aaron

12
누군가이 문제가 어떻게 해결되는지 설명 할 수 있습니까?
Neil Galiaskarov

4
오류 제공 : com.github.dcendents : android-maven-plugin : 1.4.1를 찾을 수 없습니다.
Abhijeet

1
나는 이해하지 못한다. 그러나 이것은 효과가 있었고 그것은 나를 화나게했다.
uUdoDis

7

이 코드 라인을 프로젝트 레벨 gradle에 추가하십시오.

dependencies{
   classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}

0

우리는 maven gradle 플러그인에 정적 버전을 사용해서는 안됩니다. Android Studio 루트 폴더 내의 gradle-wrapper.properties 파일 에서 distributionUrl을 확인하십시오 . 언급 된 gradle 버전을 기반 으로이 링크 에서 적절한 maven gradle 플러그인 버전을 찾을 수 있습니다

문제를 해결할 수있는 해당 버전을 업데이트하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.