gpt4 book ai didi

groovy - 如何使用Gradle构建Groovy JAR并将其发布到内部 repo 中

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

我有一个Groovy项目,正在尝试用Gradle构建它。首先,我想要一个package任务,通过根据其依赖项对其进行编译来创建一个JAR。然后,我需要为该JAR生成Maven POM,并将JAR/POM发布到内部Artifactory repo 中。 build.gradle:

apply plugin: "groovy"
apply plugin: "maven-publish"

repositories {
maven {
name "artifactory01"
url "http://myartifactory/artifactory/libs-release"
}
}
dependencies {
compile "long list starts here"
}

// Should compile up myapp-<version>.jar
jar {
}

// Should publish myapp-<version>.jar and its (generated) POM to our in-house Maven/Artifactory repo.
publishing {
publications {
myPublication(MavenPublication) {
from components.java
artifact sourceJar {
classifier "source"
}

pom.withXml {
// ???
}
}
}
}

task wrapper(type: Wrapper) {
gradleVersion = '1.11'
}

但是我不相信我已经用 jar任务正确设置了版本控制(例如,如何创建 myapp-1.2.1myapp-1.2.2来获得版本控制?我也不认为我的 publications配置正确设置: pom.withXml应该包含什么内容?

最佳答案

非常欢迎您使用artifactory插件。
可以在our user guide中找到该文档,并且在下面可以找到gradle构建的完整工作示例。

运行gradle build artifactoryPublish来构建和发布项目。

buildscript {
repositories {
jcenter()
}
dependencies {
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '3.0.1')
}
}
apply plugin: 'java'
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'

group = 'com.jfrog.example'
version = '1.2-SNAPSHOT'
status = 'SNAPSHOT'

dependencies {
compile 'org.slf4j:slf4j-api:1.7.5'
testCompile 'junit:junit:4.11'
}

task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}

publishing {
publications {
main(MavenPublication) {
from components.java
artifact sourcesJar
}
}

artifactory {
contextUrl = 'http://myartifactory/artifactory'
resolve {
repository {
repoKey = 'libs-release'
}
}
publish {
repository {
repoKey = 'libs-snapshot-local'
username = 'whatever'
password = 'whatever123'
}
defaults {
publications 'main'
}
}
}

关于groovy - 如何使用Gradle构建Groovy JAR并将其发布到内部 repo 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25258174/

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