原始 MediaWiki 页面

我知道编辑这个网站吗?

摇篮

自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南

Gradle是一个开源构建系统,使用基于Groovy的语法脚本作为AntMaven的XML的简洁替代方案。

QuPath 例如使用 gradle,如果您想开发 QuPath 的扩展,您很可能需要使用 gradle 而不是 maven。

在 Scijava Maven 上配置中使用 Gradle 和 GitHub 操作

任何依赖于 pom-scijava 的 Maven 项目都可以在 scijava maven 上使用 scijava-scripts 轻松部署。有关详细信息,请参阅MavenGitHub actions

如果由于某种原因,您有一个 gradle 管理的项目而不是一个 Maven 项目(例如,对于 QuPath 扩展),那么仍然可以将其上传到 scijava maven,但有一些限制。

警告您混合使用 Maven 和 gradle 项目,如果交付依赖项,很可能无法正确处理。

maven部署的要求

假设您有一个具有最小依赖项的 gradle 项目,并且您想要将生成的构建 jar 上传到 scijava maven。首先,您需要在 github 上托管您的项目,并且需要允许您的 github 在组织 scijava maven 上部署:

然后,您需要修改构建脚本并添加 github 工作流程,如下所示:

脚本编写:build.gradle文件和 GitHub publish.yml

您需要对 build.gradle 文件进行一些修改。

警告:下面的示例是用 kotlin 而不是 groovy 编写的(翻译需要帮助…)

build.gradle 文件

保证您的build.gradle文件中存在以下部分:

  • 为您的工件指定groupversion,例如:
    # ! KOTLIN LANGUAGE !
    group = "ch.epfl.biop"
    version = "0.2.3-SNAPSHOT"
    

    *(工件名称在settings.gradle文件中定义),例如:

    # ! KOTLIN LANGUAGE !
    rootProject.name = "qupath-extension-warpy"
    

    此处示例中,指向您要配置的 GAV:ch.epfl.biop:qupath-extension-warpy:0.2.3-SNAPSHOT

  • 声明maven-publish插件:
    # ! KOTLIN LANGUAGE !
    plugins {
      `java-library`
      `maven-publish`
    }
    

    *添加发布设置: ```java

#! KOTLIN LANGUAGE ! publishing { publications.create("maven") { from(components.java) } repositories { maven { name = "scijava" url = if (version.toString().endsWith("SNAPSHOT")) uri("https://maven.scijava.org/content/repositories/snapshots") else uri("https://maven.scijava.org/content/repositories/releases") credentials { username = System.getenv("MAVEN_USER") password = System.getenv("MAVEN_PASS") } } } }

####publish.yml Github 工作流程

其次,您可以在文件夹`.github/workflows`中的添加脚本项目`publish.yml`:
```groovy
# This workflow will publish jars to maven.scijava.org.
# Currently, it must be triggered manually and uses Java 11
# (because there is no requirement for jpackage).

name: Publish release to SciJava Maven

on: 
  workflow_dispatch:

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v2
        with:
          java-version: '11'
          distribution: 'adopt-hotspot'
      - name: Grant execute permission for gradlew
        run: chmod +x gradlew
      - name: Publish package
        run: ./gradlew publish -P toolchain=11 -P release=true
        env:
          MAVEN_USER: $ { { secrets.MAVEN_USER } }
          MAVEN_PASS: $ { { secrets.MAVEN_PASS } }

要进行部署,您可以从github“手动”运行工作流程。单击操作,选择发布工作流程,单击运行。如果一切顺利,那么您的新存储库应该出现在scijava maven上。如果没有,请检查github工作流程的日志,如果没有找到问题,请在the Image.sc Forum上发布问题并附上失败的日志!

命名你的版本!

您可以在仓库中添加 -SNAPSHOT 后缀来配置其快照版本。要发布版本,请提交不带 SNAPSHOT 后缀的仓库,运行发布工作流程,然后立即使用更高版本和 SNAPSHOT 版本进行新提交。所有这些都是通过 scijava-scripts 自动完成的,但您目前必须使用 gradle 项目手动完成。

开发示例:

  • 初始提交 > org.my:myrepo:0.1.0-SNAPSHOT > 发布快照
  • 提交“添加内容”> org.my:myrepo:0.1.0-SNAPSHOT
  • 提交“添加一个奇特的功能”> org.my:myrepo:0.1.0-SNAPSHOT > 发布快照(因为你想删除以前的快照)
  • 提交“小修复”> org.my:myrepo:0.1.0-SNAPSHOT
  • 提交 “release v0.1.0,删除 SNAPSHOT 后缀” > org.my:myrepo:0.1.0 > 发布 0.1.0 版本
  • 提交“进入下一个开发周期,添加 SNAPSHOT 后缀 0.1.1-SNAPSHOT” > org.my:myrepo:0.1.1-SNAPSHOT > 发布 0.1.1-SNAPSHOT *等等。

您需要手动更改版本号,并手动运行github发布工作流程。

示例

如果您想查看使用所有这些项目,请查看https://github.com/BIOP/qupath-extension-warpy

在 Gradle build.gradle 脚本中使用 SciJava 工件

SciJava 软件堆栈中的核心工件(例如 SciJavaImgLib2ImageJ2SCIFIOFiji)是使用 Maven 构建的,但也可以在 Gradle 构建脚本中使用。 1Ryan Eckbo贡献

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "io.spring.gradle:dependency-management-plugin:0.5.4.RELEASE"
    }
}
apply plugin: "io.spring.dependency-management"
存储库{
    mavenCentral()
    maven {
            url "https://maven.scijava.org/content/groups/public/"
    }
}
依赖管理{
    imports {
        mavenBom 'org.scijava:pom-scijava:43.0.0'
    }
}

依赖项{
    compile 'net.imagej:imagej'
}