자바가 아닌 프로젝트로 구성된 다중 프로젝트 gradle (버전 2.1 !!) 빌드가 있습니다.자바, 이어 또는 전쟁 플러그인이없는 Gradle Nexus 및 FlatDir 배포
생성 된 아티팩트 (.tar.gz 파일)를 Nexus 및 디렉토리에 배포하고 싶습니다.
은 현재 내가 루트 build.gradle
파일의 subprojects
내부 repositories
블록의 각 하위 프로젝트도 다시 repositories
블록의 루트 build.gradle
에 저장소를 정의합니다.
base
플러그인을 루트 프로젝트에 적용하고 maven-publish
플러그인을 배포 할 아티팩트가있는 모든 하위 프로젝트에 적용합니다.
- https://docs.gradle.org/2.1/userguide/publishing_maven.html
- https://docs.gradle.org/2.1/dsl/org.gradle.api.publish.maven.MavenPublication.html
- https://discuss.gradle.org/t/how-to-have-multiple-uploadarchives/19381/3
- How can I make uploadArchives dependent on another task?
- 와 몇 가지 더 ...
하지만이 번호 :
는 여기 지침을 따르려고 노력 일했다. :-( 다음내가 할 수있는 작업은 다음과 같습니다.
...
# apply the maven-publish plugin only to sub-projects that produce artifacts that should be uploaded.
apply plugin: 'maven-publish'
publishing {
publications {
tarFiles (MavenPublication) {
artifact compressTar
}
}
repositories {
add rootProject.repositories.fsShare
add rootProject.repositories.nexusDeploy
}
}
...
가 compressTar
내 사용자 정의 I 업로드 할 아티팩트를 생성 Tar
작업입니다
나는 다음과 같은 오류가 ./gradlew publishTarFilesPublicationToNexusDeployRepository
를 실행하면 :
Execution failed for task ':mySubProject:publishTarFilesPublicationToNexusDeployRepository'.
> Failed to publish publication 'tarFiles' to repository 'nexusDeploy'
> Failed to retrieve remote metadata myRootProject:mySubProject:0.0.0.0-SNAPSHOT/maven-metadata.xml: Could not transfer metadata myRootProject:mySubProject:0.0.0.0-SNAPSHOT/maven-metadata.xml from/to remote (https://myProject.nexus.url:443/nexus3/repository/builds/): Could not get resource 'myRootProject/mySubProject/0.0.0.0-SNAPSHOT/maven-metadata.xml'
uploadArchives
을 실행하면 작업은 성공하지만 아무 것도 업로드되지 않습니다. uploadArchives
작업처럼 보이는 출력은 maven-plugin이 적용되지 않은 하위 프로젝트에서만 실행됩니다.
어떻게해야할까요? 어떤 플러그인을 언제/어디에 적용해야합니까?
작동하지 않는 기능은 무엇입니까? 어떤 오류가 있습니까/gradle의 출력이 실행되고 있습니까? – Opal