gpt4 book ai didi

java - 使用gradle maven插件时如何设置java目标和源版本?

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

我正在使用 gradle 3.5 和 gradle 的 Maven 插件。

我有一个生成 pom.xml 的任务,由于 java 的源版本和目标版本,生成的 pom 是错误的。

这生成了 1.5 的 pom.xml(错误):

task createPom << {
pom {
project {
groupId 'com.domain.api'
artifactId 'gs-gradle'
version '0.1.0'
inceptionYear '2008'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}.writeTo("pom.xml")
}

这会使 gradle makePom 任务失败:

task createPom << {
pom {
project {
groupId 'com.domain.api'
artifactId 'gs-gradle'
version '0.1.0'
build {
plugins {
plugin {
groupId 'org.apache.maven.plugins'
artifactId 'maven-compiler-plugin'
version '3.7.0'
configuration {
source '1.8'
target '1.8'
}
}
}
}
inceptionYear '2008'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}.writeTo("pom.xml")
}

这是添加build对象时的输出错误:

* What went wrong:
Execution failed for task ':createPom'.
> No such property: _SCRIPT_CLASS_NAME_ for class: org.apache.maven.model.Model

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

最佳答案

这就是我解决目标和源问题的方法:

pom {
project {
groupId 'com.domain.api'
artifactId 'gs-gradle'
version '0.1.0'
properties {
project {
build {
sourceEncoding 'UTF-8'
}
}
maven {
compiler {
source '1.8'
target '1.8'
}
}
}

inceptionYear '2008'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}

这样我就可以设置属性。

如果您确实需要自定义构建,则由于负责它的插件,您将无法以相同的方式声明它。您可以这样做:

pom {
project {
groupId 'com.domain.api'
artifactId 'gs-gradle'
version '0.1.0'
properties {
project {
build {
sourceEncoding 'UTF-8'
}
}
maven {
compiler {
source '1.8'
target '1.8'
}
}
}

inceptionYear '2008'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}.withXml {
asNode().appendNode('build').appendNode('plugins').with {
appendNode('plugin').with {
appendNode('groupId', 'org.springframework.boot')
appendNode('artifactId', 'spring-boot-maven-plugin')
appendNode('version', "${springBootVersionDef}")
appendNode('executions').appendNode('execution').appendNode('goals').with {
appendNode('goal', 'repackage')
}
}
appendNode('plugin').with {
appendNode('groupId', 'org.apache.maven.plugins')
appendNode('artifactId', 'maven-jar-plugin')
appendNode('version', "3.0.2")
appendNode('configuration').appendNode('archive').appendNode('manifest').with {
appendNode('addClasspath', "true")
appendNode('classpathPrefix', "lib/")
appendNode('mainClass', "com.domain.api.Application")
}
}
}
}.writeTo("pom.xml")

关于java - 使用gradle maven插件时如何设置java目标和源版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46337733/

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