如何通过maven-publish Gradle插件排除sources.jar的Maven仓库发布?
如何排除maven-publish发布时的sources.jar
下面提供两种可行的配置方案,帮你停止发布myapp-sources.jar:
方案1:移除publication中的sources artifacts
在你的MavenPublication配置里添加afterEvaluate闭包,过滤掉classifier为sources的artifact:
project.group = 'com.test' project.version = '0.0.1' sourceCompatibility = '8' publishing { publications { maven(MavenPublication){ groupId = project.group artifactId = project.name version = project.version from components.java artifact jar // 移除sources jar afterEvaluate { artifacts.removeAll { artifact -> artifact.classifier == 'sources' } } } } }
方案2:仅发布主jar(舍弃components.java的默认引入)
如果不需要components.java带来的额外默认配置,直接删除from components.java,只保留artifact jar即可,这样只会发布主jar文件:
project.group = 'com.test' project.version = '0.0.1' sourceCompatibility = '8' publishing { publications { maven(MavenPublication){ groupId = project.group artifactId = project.name version = project.version artifact jar } } }
额外说明
你当前的配置里,from components.java已经包含了项目的主jar,再写artifact jar属于重复添加。而sources.jar被发布的原因,通常是项目中启用了withSourcesJar()(比如Java插件配置),或者自定义了sourcesJar任务并将其加入到了components.java中,导致from components.java会自动引入sources jar。
内容的提问来源于stack exchange,提问作者cooldev
相关产品推荐
相关产品推荐

