代码之家  ›  专栏  ›  技术社区  ›  cdprete

将已编译的Groovy脚本与GMavenPlus插件一起使用

  •  0
  • cdprete  · 技术社区  · 2 年前

    我在试着使用 GMavenPlus Plugin 运行一些 Groovy 来自 Maven 已经编译并打包成 jar .

    脚本非常简单:

    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>
    

    根据 documentation 这个 project 变量在默认情况下应该是可用的,如果我内联定义脚本而不是从 罐子 . 我有办法让这样的物体通过吗?

    0 回复  |  直到 2 年前
        1
  •  0
  •   khmarbaise    2 年前

    基于给定的事物:

       <profile>
          <id>javac-release</id>
          <activation>
            <jdk>[9,)</jdk>
          </activation>
          <properties>
            <maven.compiler.release>8</maven.compiler.release>
          </properties>
        </profile>
    
        2
  •  0
  •   cdprete    2 年前

    我没有找到解决这个问题的办法,但我找到了一个解决办法。也就是将Groovy源代码打包为 jar ,发布它们,然后让Maven下载它们(使用 maven-dependency-plugin )然后让 gmavenplus-plugin 援引这些来源。

    这不是最好的解决方案,但很有效:)