我成功地将我的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项目.