我试图使用GMavenPlus Plugin从Maven运行一些已经编译并打包成jar的Groovy脚本。
这个脚本非常简单:
package foo.bar.scripts
import groovy.transform.Field
@Field
private static final String JAVA_VERSION_PROPERTY_NAME = 'java.version'
@Field
private static final String MAVEN_COMPILER_RELEASE_PROPERTY_NAME = 'maven.compiler.release'
def javaVersion = project.properties[JAVA_VERSION_PROPERTY_NAME]?.trim()
if(javaVersion?.isInteger() && javaVersion.toInteger() >= 9) {
project.properties[MAVEN_COMPILER_RELEASE_PROPERTY_NAME] = javaVersion
}然后我引用如下:
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>scripts</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>adjust-compiler-settings</id>
<phase>initialize</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<scripts>
<script>foo.bar.scripts.AdjustCompilerSettings.main()</script>
</scripts>
</configuration>
</execution>
</executions>
</plugin>根据文档,默认情况下,project变量应该是可用的,如果我以内联方式定义脚本,而不是从jar中选择脚本,这确实是正确的。我有办法通过这样的物体吗?
发布于 2022-04-11 10:19:03
我没有找到解决这个问题的办法,但我找到了解决办法。也就是说,将Groovy源代码打包为jar,发布它们,然后让Maven下载它们(使用maven-dependency-plugin),让gmavenplus-plugin调用这些源代码。
不是最好的解决方案,但它有效:)
发布于 2022-04-01 10:41:21
基于给定的事物:
<profile>
<id>javac-release</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<maven.compiler.release>8</maven.compiler.release>
</properties>
</profile>https://stackoverflow.com/questions/71704097
复制相似问题