Tôi đang sử dụng tre 6.0.3 build 60004
và tôi đã cài đặt phiên bản 2.1.0
của official Artifactory plugin for Bamboo.Xuất bản lên Artifactory từ Bamboo 6
Các build.gradle
của dự án trông giống như:
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'
...
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
afterEvaluate {
androidJavadocs.classpath += files(android.libraryVariants.collect { variant ->
variant.javaCompile.classpath.files
})
}
publishing {
publications {
android.buildTypes.all { variant ->
"${variant.name}Aar"(MavenPublication) {
// set values from Android manifest file
groupId group
version version
if (variant.name == "release") {
artifactId project.getName()
}
else {
artifactId "${project.getName()}-${variant.name}"
}
artifact "$buildDir/outputs/aar/${project.getName()}-${variant.name}-${version}.aar"
artifact androidJavadocsJar
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
// List all compile dependencies and write to POM
configurations.compile.getAllDependencies().each { Dependency dep ->
if (dep.group == null || dep.version == null || dep.name == null || dep.name == "unspecified")
return // ignore invalid dependencies
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dep.group)
dependencyNode.appendNode('artifactId', dep.name)
dependencyNode.appendNode('version', dep.version)
if (!dep.transitive) {
// If this dependency is transitive, we should force exclude all its dependencies them from the POM
def exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
exclusionNode.appendNode('groupId', '*')
exclusionNode.appendNode('artifactId', '*')
} else if (!dep.properties.excludeRules.empty) {
// Otherwise add specified exclude rules
def exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
dep.properties.excludeRules.each { ExcludeRule rule ->
exclusionNode.appendNode('groupId', rule.group ?: '*')
exclusionNode.appendNode('artifactId', rule.module ?: '*')
}
}
}
}
}
}
}
}
def libraryGroupId = group
def libraryVersion = version
artifactory {
contextUrl = '<artifactory_url>'
publish {
repository {
repoKey = '<repoKey>'
username = artifactory_username
password = artifactory_password
}
defaults {
android.buildTypes.all { variant ->
publications("${variant.name}Aar")
publishArtifacts = true
}
properties = ['qa.level': 'basic', 'dev.team': 'core']
publishPom = true
}
}
}
Khi tôi chạy lệnh gradle build assembleRelease artifactoryPublish
trên máy tính xách tay của tôi, nó tải lên trong Artifactory repo một aar
và một tập tin pom
.
Tôi đã thử sử dụng tác vụ Artifactory Deployment
trong dự án triển khai chạy sau khi tác vụ xây dựng thực hiện gradle build assembleRelease
(vì vậy giống nhau nhưng không xuất bản thành hiện vật), nhưng thay vào đó chỉ xuất bản tệp aar và cấu trúc thư mục trong artifactory không Không giống nhau (nó không phân tích tên gói theo thư mục con). Làm thế nào để đạt được cùng với tre?
Điều này hoàn toàn không trả lời được câu hỏi. Tôi hỏi về cách xuất bản cả tệp 'aar' và tệp' pom' bằng cách sử dụng plugin giống như khi tôi làm mà không có plugin.Tôi biết đó là hai điều khác nhau, nhưng tôi đã mong đợi kết quả tương tự bằng cách sử dụng một trong hai, nhưng đó không phải là trường hợp – Guillaume