gpt4 book ai didi

maven - 使用 Gradle 构建 Maven 插件

转载 作者:行者123 更新时间:2023-12-04 02:23:37 27 4
gpt4 key购买 nike

我正在考虑搬到 Gradle。但是,我确实有一些 Maven 插件,在可预见的 future 需要支持这些插件。

有没有办法使用 Gradle 构建 Maven 插件?

最佳答案

Here's something这对我有用:

  • 编译插件的源代码后生成项目的 POM:"install.repositories.mavenInstaller.pom.writeTo( 'pom.xml' )"
  • 补丁 POM 生成并提供插件的坐标和正确的目标目录
  • 运行 "mvn org.apache.maven.plugins:maven-plugin-plugin:3.2:descriptor"

  • 这样 "build/classes/main/META-INF/maven/plugin.xml"jar 创建并正确打包任务,这是 jar 文件成为 Maven 插件 AFAIK 所需的全部内容。另外,我相信, "maven-plugin-annotations"应该在插件中使用。
    task pluginDescriptor( type: Exec ) {
    commandLine 'mvn', '-e', '-B', 'org.apache.maven.plugins:maven-plugin-plugin:3.2:descriptor'
    doFirst {
    final File pom = project.file( 'pom.xml' )
    install.repositories.mavenInstaller.pom.writeTo( pom )
    assert pom.file, "[$pom.canonicalPath] was not created"

    pom.text = pom.text.
    replace( '<groupId>unknown</groupId>', "<groupId>${project.group}</groupId>" ).
    replace( '<artifactId>empty-project</artifactId>', "<artifactId>${project.name}</artifactId>" ).
    replace( '<version>0</version>', """
    |<version>${version}</version>
    | <packaging>maven-plugin</packaging>
    | <build>
    | <directory>\${project.basedir}/build</directory>
    | <outputDirectory>\${project.build.directory}/classes/main</outputDirectory>
    | </build>
    |""".stripMargin().trim())
    }
    doLast {
    final pluginDescriptor = new File(( File ) project.compileGroovy.destinationDir, 'META-INF/maven/plugin.xml' )
    assert pluginDescriptor.file, "[$pluginDescriptor.canonicalPath] was not created"
    println "Plugin descriptor file:$pluginDescriptor.canonicalPath is created successfully"
    }
    }

    project.compileGroovy.doLast{ pluginDescriptor.execute() }

    关于maven - 使用 Gradle 构建 Maven 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11209382/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com