Java with maven local repo: failed to download dependency of customized jar


(Shemer Kuznits T2K) #1

I have a java SpringBoot project, that I build using ‘gradle build’ - which create the full executable jar with the default project name.
I also defined a customized jar task - to include only models from that project:

task clientJar(type: Jar, overwrite: true) {
from sourceSets.main.output
baseName = 'models-only’
include ‘**/model/**’

when I run ‘gradle clientJar’ - the new jar is also generated sucesfully as ‘models-only-[version data].jar’

now, when I run ‘gradle uploadArchives’ the local maven .m2 repository is being created and into it are uploaded the custom clientJar AND a normal (non executable) jar containing all classes, with the defautlt name of the project.

  • I belive that the default jar is created due to the ‘plugin java’ line - which is ok. (if I rename my clientJar to the default project name - only the full jar is created).

anyway - THE PROBLEM is:
in a second project I need to use the clientJar as a dependancy, but when I specify it by name I get an error:
‘Could not find com.t2k.playanywhere:models_only:0.0.1-SNAPSHOT’

but if I change the dependency to use the default jar - it manage to download the jar properly from the local repository.

to clarify: at both attempt - the local maven repo contains the 2 jars, but only the default one is apparently found.

I’d appreciate any suggestions.

I just found that the problem was due to the customized client jar is being stored in the same folder (at the local repo) as the default jar.
when I create it manually at a folder with the smae name as the client jar - the build dependency is found!

so I guess now the question is how to I fix my clientJar task code to be stored in it’s own folder?

(René Groeschke) #2

to publish multiple artifacts you have to explicitly declare each artifact you want to publish to your Maven repository, Section Multiple artifacts per project in the current userguide at covers this topic.


(Shemer Kuznits T2K) #3

but the example is really not sufficient - it’s barely have any proper documentation, and I couldn’t find any examples for this usage anywhere else…
for example: what is the ‘filter’ field? how do you define it?