我成功地将我的jars上传到了一个nexus仓库,它使用了用于渐变的maven插件,但没有上传源代码.这是我的配置:
uploadArchives { repositories{ mavenDeployer { repository(url: "http://...") { authentication(userName: "user",password: "myPassword") } } } }
task sourcesJar(type: Jar,dependsOn:classes) { classifier = 'sources' from sourceSets.main.allSource } artifacts { archives sourcesJar }
这很好,但是我认为配置maven插件必须有一个更好的解决方案,像uploadSource = true这样:
uploadArchives { repositories{ mavenDeployer { repository(url: "http://...") { authentication(userName: "user",password: "myPassword") } uploadSources = true } } }
解决方法
没有比你自己描述的更好的解决方案. gradle maven插件正在上传当前项目中生成的所有工件.这就是为什么你必须明确地创建一个“源”工件.
使用新的maven-publish插件时,情况也不会改变.在这里,您还需要显式定义其他工件:
task sourceJar(type: Jar) { from sourceSets.main.allJava } publishing { publications { mavenJava(MavenPublication) { from components.java artifact sourceJar { classifier "sources" } } } }
原因是毕业生更多的是一般的构建工具,而不是纯Java项目.