Используйте скомпилированные скрипты Groovy с плагином GMavenPlus

я пытаюсь использовать GMavenPlus Pluginзапустить некоторые Groovyсценарии из Mavenкоторые были скомпилированы и упакованы в файл .

Скрипт очень простой:

      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. У меня есть способ передать такой объект?

2 ответа

Я не нашел решения проблемы, но нашел (вроде) обходной путь. То есть упаковать исходники Groovy как jar, опубликуйте их, а затем заставьте Maven загрузить их (с maven-dependency-plugin) и пусть gmavenplus-pluginссылаться на такие источники.

Не самое красивое решение, но оно работает :)

На основании данной вещи:

         <profile>
      <id>javac-release</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
      </properties>
    </profile>
Другие вопросы по тегам