代码拉取完成,页面将自动刷新
plugins {
id 'java'
id 'maven-publish'
id 'java-gradle-plugin'
id 'com.gradle.plugin-publish' version '1.1.0'
id 'io.codearte.nexus-staging' version '0.21.2'
id 'eclipse'
id 'de.undercouch.download' version '5.0.4'
id 'signing'
}
repositories {
mavenLocal()
mavenCentral()
maven {
url 'https://plugins.gradle.org/m2/'
}
}
gradlePlugin {
website = 'http://github.com/fvarrui/JavaPackager'
vcsUrl = 'http://github.com/fvarrui/JavaPackager.git'
description = 'Packages Java applications as native Windows, MacOS or GNU/Linux executables and creates installers for them'
plugins {
create("javaPackagerPlugin") {
id = 'io.github.fvarrui.javapackager.plugin'
displayName = 'JavaPackager'
implementationClass = 'io.github.fvarrui.javapackager.gradle.PackagePlugin'
tags.set(['java', 'packager', 'gradle-plugin', 'maven-plugin', 'native', 'installer', 'debian-packages', 'rpm-packages', 'dmg', 'maven', 'gradle', 'distribution', 'javapackager', 'linux-executables', 'deb', 'rpm', 'native-windows', 'java-applications', 'pkg', 'msi'])
}
}
}
configurations {
mavenEmbedder
}
dependencies {
implementation 'org.apache.maven:maven-plugin-api:3.6.0'
implementation 'org.codehaus.plexus:plexus-utils:3.5.1'
implementation 'org.twdata.maven:mojo-executor:2.3.0'
implementation 'commons-io:commons-io:2.16.1'
implementation 'org.apache.commons:commons-lang3:3.9'
implementation 'org.apache.commons:commons-collections4:4.3'
implementation 'org.apache.commons:commons-compress:1.21'
implementation 'org.apache.velocity:velocity-engine-core:2.3'
implementation 'org.vafer:jdeb:1.9'
implementation 'net.jsign:jsign-core:6.0'
implementation 'org.redline-rpm:redline:1.2.10'
implementation 'edu.sc.seis.launch4j:launch4j:3.0.5'
testImplementation 'junit:junit:4.13.1'
compileOnly 'org.apache.maven.plugin-tools:maven-plugin-annotations:3.6.0'
mavenEmbedder 'org.apache.maven:maven-embedder:3.6.0'
mavenEmbedder 'org.apache.maven:maven-compat:3.6.0'
mavenEmbedder 'org.slf4j:slf4j-simple:1.7.30'
mavenEmbedder 'org.eclipse.aether:aether-connector-basic:1.1.0'
mavenEmbedder 'org.eclipse.aether:aether-transport-wagon:1.1.0'
mavenEmbedder 'org.apache.maven.wagon:wagon-http:3.4.1'
mavenEmbedder 'org.apache.maven.wagon:wagon-provider-api:3.4.1'
}
group = 'io.github.fvarrui'
version = '1.7.6'
description = 'Hybrid Maven/Gradle plugin to package Java applications as native Windows, Mac OS X or GNU/Linux executables and create installers for them'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
compileJava.options.encoding = 'UTF-8'
// suppress javadoc warnings
javadoc.options.addStringOption('Xdoclint:none', '-quiet')
java {
withSourcesJar()
withJavadocJar()
}
// OSSRH publication
publishing {
repositories {
maven {
def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots"
name = "OSSRH"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
username = project.findProperty("ossrhUsername") ?: ''
password = project.findProperty("ossrhPassword") ?: ''
}
}
}
publications {
pluginMaven(MavenPublication) {
def directory = buildDir.canonicalPath
def outputDirectory = compileJava.destinationDirectory.asFile.get().canonicalPath
pom.withXml {
asNode().appendNode('build')
.with {
appendNode('directory', directory)
appendNode('outputDirectory', outputDirectory)
}
asNode().appendNode('repositories').appendNode('repository')
.with {
appendNode('id', 'gradle')
appendNode('name', 'Gradle Plugin Portal')
appendNode('url', 'https://plugins.gradle.org/m2/')
}
}
pom {
name = project.name
groupId = project.group
artifactId = project.name
packaging = 'maven-plugin'
}
}
}
afterEvaluate {
publications {
withType(MavenPublication) {
// customize all publications here
pom {
version = project.version
description = project.description
url = 'https://github.com/fvarrui/JavaPackager'
scm {
connection = 'scm:git:git://github.com/fvarrui/JavaPackager.git'
developerConnection = 'scm:git:git@github.com:fvarrui/fvarrui.git'
url = 'https://github.com/fvarrui/JavaPackager'
}
licenses {
license {
name = 'GPL-v3.0'
url = 'http://www.gnu.org/licenses/gpl-3.0.txt'
distribution = 'repo'
}
}
developers {
developer {
id = 'fvarrui'
name = 'Francisco Vargas Ruiz'
url = 'https://github.com/fvarrui'
}
}
}
}
}
}
}
// runs the plugin description generator
tasks.register('generatePluginDescriptor', JavaExec) {
dependsOn compileJava
def pluginDescriptorFile = new File(project.compileJava.destinationDirectory.asFile.get(), 'META-INF/maven/plugin.xml')
// FIXME: this does not seem to be working
inputs.files project.compileJava.outputs.files
outputs.file pluginDescriptorFile
classpath = configurations.mavenEmbedder
mainClass = 'org.apache.maven.cli.MavenCli'
systemProperties['maven.multiModuleProjectDirectory'] = projectDir
args = [
'--errors',
'--batch-mode',
'--file', generatePomFileForPluginMavenPublication.destination,
'org.apache.maven.plugins:maven-plugin-plugin:3.9.0:descriptor',
'-Dproject.build.sourceEncoding=' + compileJava.options.encoding
]
doLast {
assert pluginDescriptorFile.file, "${pluginDescriptorFile.canonicalPath}: was not generated"
logger.info("Plugin descriptor is generated in ${pluginDescriptorFile.canonicalPath}")
}
}
generatePluginDescriptor.dependsOn(generatePomFileForPluginMavenPublication)
project.classes.dependsOn(generatePluginDescriptor)
project.validatePlugins.dependsOn(generatePluginDescriptor)
publishToMavenLocal.dependsOn(build)
// Signature of publication
signing {
setRequired {
// signing is only required if the artifacts are to be published
gradle.taskGraph.allTasks.any { it instanceof PublishToMavenRepository }
}
sign publishing.publications.pluginMaven
}
nexusStaging {
username = project.findProperty('ossrhUsername') ?: ''
password = project.findProperty('ossrhPassword') ?: ''
}
tasks.register('updateUniversalJavaApplicationStub', Download) {
def version = '20230601.235708'
group 'Update assets'
description 'Downloads compiled and scripted versions of universalJavaApplicationStub to src/main/resources/mac overriding the existing ones.'
src([
"https://github.com/fvarrui/universalJavaApplicationStub/releases/download/${version}/universalJavaApplicationStub.sh",
"https://github.com/fvarrui/universalJavaApplicationStub/releases/download/${version}/universalJavaApplicationStub.x86_64",
"https://github.com/fvarrui/universalJavaApplicationStub/releases/download/${version}/universalJavaApplicationStub.arm64",
"https://github.com/fvarrui/universalJavaApplicationStub/releases/download/${version}/universalJavaApplicationStub"
])
dest file('src/main/resources/mac')
overwrite true
}
tasks.register('updateWhyJavaLauncher', Download) {
def version = '1.1.2'
group 'Update assets'
description 'Downloads JavaLauncher.exe to src/main/resources/windows and overwrites the existing one.'
src([
"https://github.com/AstroImageJ/Why/releases/download/${version}/JavaLauncher.exe"
])
dest file('src/main/resources/windows')
overwrite true
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。