add nextflow d30e48d

This commit is contained in:
2026-04-29 23:01:54 +02:00
parent d0b12d668d
commit 97cc9058d3
2840 changed files with 730250 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
apply plugin: 'java'
ext.aws_access_key_id = project.findProperty('aws_access_key_id') ?: System.getenv('AWS_ACCESS_KEY_ID')
ext.aws_secret_access_key = project.findProperty('aws_secret_access_key') ?: System.getenv('AWS_SECRET_ACCESS_KEY')
ext.publishRepoUrl = project.findProperty('publish_repo_url') ?: System.getenv('PUBLISH_REPO_URL') ?: ( version.endsWith('-SNAPSHOT') ? "s3://maven.seqera.io/snapshots" : "s3://maven.seqera.io/releases" )
jar.enabled = false
subprojects {
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven-publish'
repositories {
mavenLocal()
mavenCentral()
}
group = 'io.nextflow'
version = project.file('VERSION').text.trim()
tasks.withType(GenerateModuleMetadata) {
enabled = false
}
/*
* Copy the plugin dependencies in the subproject `build/target/libs` directory
*/
task copyPluginLibs(type: Sync) {
group 'nextflow'
from configurations.runtimeClasspath
into 'build/target/libs'
}
/*
* Copy the plugin manifest to resources directory for dev mode discovery.
* In dev mode, pf4j looks for META-INF/MANIFEST.MF in the classpath directories,
* but Gradle only generates it during JAR creation. This task copies the manifest
* to the resources directory after the JAR is built.
*/
task copyPluginManifest(type: Copy) {
group 'nextflow'
from 'build/tmp/jar/MANIFEST.MF'
into 'build/resources/main/META-INF'
dependsOn jar
}
// Ensure manifest is available for test classpath (needed for dev mode plugin discovery)
tasks.matching { it.name == 'test' }.configureEach {
dependsOn copyPluginManifest
}
// Ensure packagePlugin task depends on copyPluginManifest to avoid implicit dependency issues
tasks.matching { it.name == 'packagePlugin' }.configureEach {
dependsOn copyPluginManifest
}
/*
* publish jars maven repo on S3
*/
publishing {
publications {
maven(MavenPublication) {
from components.java
suppressPomMetadataWarningsFor('testFixturesApiElements')
suppressPomMetadataWarningsFor('testFixturesRuntimeElements')
}
}
repositories {
maven {
name = 'Seqera'
url = publishRepoUrl
credentials(AwsCredentials) {
// keys are defined in the `gradle.properties` file
accessKey aws_access_key_id
secretKey aws_secret_access_key
}
}
}
}
}
/*
* "install" the plugin the project root build/plugins directory
*/
project.parent.tasks.getByName("assemble").dependsOn << assemble
/*
* Copies the plugins required dependencies in the corresponding lib directory
*/
classes.dependsOn subprojects.copyPluginLibs