Sto usando gradle e voglio creare un .jar
con i file di origine quando si fa un publishToMavenLocal
. Ho ottenuto che di lavorare facilmente:Jar con i file di origine e le dipendenze in POM
task jarWithSources(type: Jar) {
from sourceSets.main.output
if (gradle.startParameter.taskNames.any{it == "publishToMavenLocal"}) {
from sourceSets.main.allJava
}
}
publishing {
publications {
// publish the data_deposit jar as a standalone artifact
mavenJar(MavenPublication) {
artifact jarWithSources
artifactId "${jar.baseName}_jar"
version project.version
}
}
repositories {
maven { ... }
}
}
Tuttavia il pom.xml
manca le dipendenze.
Se io uso questo:
publishing {
publications {
// publish the data_deposit jar as a standalone artifact
mavenJar(MavenPublication) {
// artifact jarWithSources // Stopped using this
from components.java // Have added this
artifactId "${jar.baseName}_jar"
version project.version
}
}
repositories {
maven { ... }
}
}
Dove questo è solo che un cambio nella MavenPublication
, poi ho ottenere il pieno pom.xml
, ma nessuna fonte, naturalmente. Non riesco a trovare un modo per includere sia artifact jarWithSources
e from components.java
. L'errore è:
Invalid publication 'mavenJar': multiple artifacts with the identical extension and classifier ('jar', 'null').
il che implica che from components.java
è di type: Jar
anche.
Qualcuno può consigliare come posso far funzionare tutto questo?
Ora per concludere questa domanda, devo dire che Gradle
ha una curva di apprendimento molto molto ripida. È un linguaggio informatico (DSL) quindi deve essere deterministico anche se a volte mi chiedo. Non ho le conoscenze per capire come funziona (per esempio) from components.java
(# 1). Per tutta la documentazione disponibile (come http://www.gradle.org/docs/current/userguide/publishing_maven.html e la guida DSL), non è molto chiaro. Penso che la documentazione potrebbe essere molto più ricca. E ci deve essere un capitolo su "come ottenerlo". C'è qualche cambiamento di paradigma che sembra aver bisogno di capire!
# 1 - come meglio capisco questo ti dà quello che è a http://www.gradle.org/docs/nightly/userguide/java_plugin.html#sec:java_plugin_and_dependency_management ma come funziona con uno from
e nel contesto di un MavenPublication
?
"una curva di apprendimento molto molto molto ripida" aggiungerei molto me stesso.Troppa magia e cattiva denominazione – mhstnsc
hanno lo stesso problema sui vasi offuscati – mhstnsc