自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南!
Gradle是一个开源构建系统,使用基于Groovy的语法脚本作为Ant或Maven的XML的简洁替代方案。
QuPath 例如使用 gradle,如果您想开发 QuPath 的扩展,您很可能需要使用 gradle 而不是 maven。
在 Scijava Maven 上配置中使用 Gradle 和 GitHub 操作
任何依赖于 pom-scijava 的 Maven 项目都可以在 scijava maven 上使用 scijava-scripts 轻松部署。有关详细信息,请参阅Maven 和GitHub actions。
如果由于某种原因,您有一个 gradle 管理的项目而不是一个 Maven 项目(例如,对于 QuPath 扩展),那么仍然可以将其上传到 scijava maven,但有一些限制。
警告您混合使用 Maven 和 gradle 项目,如果交付依赖项,很可能无法正确处理。
maven部署的要求
假设您有一个具有最小依赖项的 gradle 项目,并且您想要将生成的构建 jar 上传到 scijava maven。首先,您需要在 github 上托管您的项目,并且需要允许您的 github 在组织 scijava maven 上部署:
- 在 GitHub 上托管您的 open-source 项目。
- 您通过 Image.sc Zulip 或 Image.sc Forum 联系 SciJava 管理员(@ctrueden、@hinerm、@tpietzsch),并请求他们向部署的组织添加身份验证机密。
然后,您需要修改构建脚本并添加 github 工作流程,如下所示:
脚本编写:build.gradle文件和 GitHub publish.yml
您需要对 build.gradle 文件进行一些修改。
警告:下面的示例是用 kotlin 而不是 groovy 编写的(翻译需要帮助…)
build.gradle 文件
保证您的build.gradle文件中存在以下部分:
- 为您的工件指定
group和version,例如:# ! 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
####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 软件堆栈中的核心工件(例如 SciJava、ImgLib2、ImageJ2、SCIFIO、Fiji)是使用 Maven 构建的,但也可以在 Gradle 构建脚本中使用。 1由Ryan 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'
}