Я строю проект Grails с Maven, который является обязательным способом сборки в моей компании.
На моей локальной машине я установил плагин Grails обычным способом grails install-plugin foo
.Конечно, когда проект собирается Maven на сервере сборки, он ничего не знает об этом плагине.
Я видел, что следующее может быть полезно для случая, когда плагин доступен в каталоге плагинов.из Grails:
<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>1.1</version>
<extensions>true</extensions>
<executions>
<execution>
<id>create plugins folder</id>
<phase>validate</phase>
<goals>
<goal>install-plugin</goal>
</goals>
<configuration>
<pluginUrl>${env.GRAILS_HOME}/plugins/grails-hibernate-1.1.zip</pluginUrl>
</configuration>
</execution>
</executions>
</plugin>
но предположим, что плагин вообще не был на машине?Что будет pluginUrl
в случае, когда Maven или Grails нужно будет зайти в Интернет, чтобы найти плагин?
Редактировать:
Я нашелчто теги pluginName
и pluginVersion
полезны, и я добавил следующее выполнение к grails-maven-plugin
:
<execution>
<id>Hibernate plugin</id>
<phase>validate</phase>
<goals>
<goal>install-plugin</goal>
</goals>
<configuration>
<pluginName>hibernate</pluginName>
<pluginVersion>1.3.7</pluginVersion>
</configuration>
</execution>
Это почти работает.Если я извлекаю свой код в новом каталоге и удаляю содержимое моих каталогов плагинов, Maven сможет построить проект, успешно найдя все зависимости плагинов.
И все же он не работает в сборке.сервер.Есть идеи?