gradle - 创建类型为Jar的自定义插件任务

标签 gradle

我想发布一个 jar 。我正在这样做:

project.publishing.publications{ task ->
            mavenJava(MavenPublication)  {
                archives makeJar
                }

现在,在makeJar中,我将一个 jar 从一个位置复制到另一个位置,然后将其重命名。这是一个Copy类型的任务,但是由于我收到错误消息,该任务应该是jar任务那样的AbstractArchiveTask类型,因此无法正常工作。我想写一个像这样的任务:
class MakeJar extends Jar{
  @TaskAction
  def createJar(){
<- code for creating jar ->
}

但是没有这样的gradle任务类型Jar。我需要帮助来编写这样的任务。谢谢

最佳答案

您不需要自定义Task类即可实现如此简单的功能:

apply plugin: 'java'

task renameArtifact(type: Copy, dependsOn: 'jar') {
    from jar.archivePath

    rename '.*', 'renamedFile.jar'

    into 'destDir'
}

将编译
└── src
    └── main
        └── java
            └── Main.java

进入
├── destDir
│   └── renamedFile.jar

关于gradle - 创建类型为Jar的自定义插件任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37942485/

相关文章:

sql - 您将如何使用Gradle处理增量SQL补丁

java - selenium webdriver中gradle的实际用途是什么?

切换到 gradle 后,android 自定义 View 属性不起作用

android - Android:处理库项目中Google依赖项版本的最佳方法

java - Gradle 多个版本的 GRADLE

android - 在构建 Android Studio 时排除模块

eclipse - Tomcat 没有启动 Gradle Webapp

java - Gradle JRE vs JDK 请从你的 JDK 添加 lib/tools.jar

java - IntelliJ IDEA 中通过 Gradle 的 OptaPlanner 依赖项

java - Gradle 项目同步失败 - Android Studio