多项目的结构是
Root
+---ProjectA
+---ProjectB
+---ProjectC
+ ...
我要在
中发布一个统一的jar文件task allJar
build.gradle
buildscript {
repositories {
mavenLocal()
maven {
url "myurl"
credentials {
// Credentials needed to pull build dependencies from Nexus
username "$username"
password "$password"
}
}
}
}
apply plugin: "maven-publish"
apply plugin: "maven"
allprojects {
repositories {
mavenLocal()
maven {
credentials {
username "$username"
password "$password"
}
url "url"
}
group 'com.myproject'
version = '1.0.0-SNAPSHOT'
}
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceSets.main.java.srcDir "src/main/java"
sourceSets.main.resources.srcDirs "src/main/resources"
sourceSets.test.java.srcDir "src/test/java"
sourceSets.test.resources.srcDirs "src/test/resources"
dependencies {
// string utils
compile "org.apache.commons:commons-lang3:3.4"
testCompile "junit:junit"
}
compileJava.dependsOn(processResources)
}
}
subprojects.each { subproject ->
evaluationDependsOn(subproject.path)
}
task allJar(type: Jar, dependsOn: subprojects.assemble) {
baseName = project.name
subprojects.each { subproject ->
from subproject.configurations.archives.artifacts.files.collect {
zipTree(it)
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = project.name
from components.java
artifact allJar
println "Project Group: " + project.group + "\nProject Name: " + project.name + "\nProject Version: " + project.version
}
}
repositories {
maven {
credentials{
username NEXUS_USER
password NEXUS_PASS
}
url "myurl"
}
}
}
问题
发布为
时出现错误Invalid publication 'mavenJava': multiple artifacts with the identical extension and classifier ('jar', 'null
').
在allJar任务中添加分类器:'all'解决了该问题,但它在根文件夹中创建了2个罐子