gpt4 book ai didi

java - 使用 Gradle 进行本地发布不起作用

转载 作者:行者123 更新时间:2023-12-01 11:02:41 25 4
gpt4 key购买 nike

我有以下目录结构:

myapp/
src/main/resources/
<lots of code>
build.gradle

使用以下build.gradle:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

group = 'net.myuser'

repositories {
jcenter()
}

dependencies {
compile(
<dependencies here>
)
}

jar {
baseName = 'myapp'
}

task writePom << {
pom {
project {
groupId group
artifactId 'myapp'
version version

inceptionYear '2015'
licenses {
license {
name 'myapp'
distribution 'Blah blah blah'
}
}
}
}.writeTo("build/libs/pom.xml")
}

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

task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}

artifacts {
archives sourcesJar
archives javadocJar
}

artifacts {
archives(file("${buildDir}/libs/myapp-${version}.jar")) {
name "myapp"
classifier ""
}
}

当我这样做时:

./gradlew clean build writePom install -Pversion=0.1.0

我遇到两个问题:

  1. 在生成的 build/libs/pom.xml 中,groupId 显示为 null;和
  2. 我在 ~/.gradle/caches/modules-2 下找不到 net.myuser 目录,这告诉我 install 不存在工作

所以我问:我需要更改什么才能使 groupId 不为 null,以及如何让 install 发布以下所有内容:

  • JAR
  • 来源 JAR
  • Javadoc JAR
  • pom.xml

最佳答案

根据评论,使用groupId project.group而不是groupId group为了设置 <groupId>正确地。

<小时/>

关于install任务请看Gradle Maven Plugin documentation :

Installs the associated artifacts to the local Maven cache, including Maven metadata generation.

默认情况下,本地 Maven 缓存位于 ~/.m2/repository ,因此您正在寻找错误的位置。安装任务不会篡改~/.gradle/caches/modules-2这(顾名思义)只是已解析依赖项的缓存。

<小时/>

通过使用 Maven 插件,Gradle 已经为您创建了一个 POM 文件。所以请检查您是否真的需要定制 writePom任务。

此外,主要工件是自动安装的,因此这可能是多余的:

artifacts {
archives(file("${buildDir}/libs/myapp-${version}.jar")) {
name "myapp"
classifier ""
}
}

关于java - 使用 Gradle 进行本地发布不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33217216/

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