我有以下目录结构:
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
我遇到两个问题:
build/libs/pom.xml
内,groupId
显示为null
;和net.myuser
下找不到~/.gradle/caches/modules-2
目录,告诉我install
无效所以我问:我需要更改哪些内容以使groupId
不为空,以及如何install
发布以下所有内容:
pom.xml
答案 0 :(得分:1)
根据评论,使用groupId project.group
代替groupId group
,以便正确设置<groupId>
。
关于install
任务,请查看Gradle Maven Plugin documentation:
将关联的工件安装到本地Maven缓存,包括Maven元数据生成。
默认情况下,本地Maven缓存位于~/.m2/repository
,因此您正在查看错误的位置。安装任务不会篡改~/.gradle/caches/modules-2
,这是(如名称所暗示的)只有已解析依赖项的缓存。
通过使用Maven插件,Gradle已经为您创建了一个POM文件。因此,请检查您是否确实需要自定义writePom
任务。
此外,主工件会自动安装,因此这可能是多余的:
artifacts {
archives(file("${buildDir}/libs/myapp-${version}.jar")) {
name "myapp"
classifier ""
}
}