Gradle:maven-publishの際のpom.xmlから依存を排除する

2019年7月24日

通常は、maven-publishすると、compileやらimplementationやらの依存がpom.xmlに記述されてしまうのだが、あえてそれをしたくない場合もある。

例えば、fat-jarを作成する場合には、compile/implementationで依存jarを入れるのだが、そのfat-jarをpublishするときには、もはやこれらの依存は不要になるので、pom.xmlには記述しないで欲しい。黙っていると記述されてしまい、このfat-jarを利用する側で再度依存が含まれてしまうことになる。

これをやらせない方法は以下だ。

      publishing.publications {
        target(MavenPublication) {
          pom.withXml {
            Node pomNode = asNode()
            pomNode.dependencies.'*'.findAll() {
              it.parent().remove(it)
            }
          }
        }
      }