У меня есть плагин maven, который я не залил в центральный репозиторий, но который хочу использовать в своих проектах.
Что работает
Я могу установить плагин maven следующим образом:
git clone https://github.com/RudolfVonKrugstein/jinja-maven-plugin.git
cd jinja-maven-plugin
mvn install
Затем я могу использовать плагин, подобный этому pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>de.wintercloud</groupId>
<artifactId>sample</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>de.wintercloud</groupId>
<artifactId>jinja-maven-plugin</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>de.wintercloud</groupId>
<artifactId>jinja-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>renderjinja</goal>
</goals>
</execution>
</executions>
<configuration>
<outputFile>out.txt</outputFile>
<templateFile>templ.jinja</templateFile>
<varFile>vars.yaml</varFile>
</configuration>
</plugin>
</plugins>
</build>
</project>
Вот другие файлы, относящиеся к компиляции:
темпл.jinja:
{{ Name }}
варс.yaml:
Name: MyWonderfullName
Это работает:
> mvn compile
> cat out.txt
Мое имя
Хороший!
Что не работает
Теперь я пытаюсь передать плагин в виде jar-файла своим коллегам, чтобы они могли просто установить jar-файл. Идея состоит в том, чтобы сделать это так:
git clone https://github.com/RudolfVonKrugstein/jinja-maven-plugin.git
cd jinja-maven-plugin
mvn package
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=target/jinja-maven-plugin-1.0.jar
Когда я сейчас это сделаю (в примере проекта)
mvn compile
Я получаю эту ошибку:
[ERROR] Failed to execute goal de.wintercloud:jinja-maven-plugin:1.0:renderjinja (default) on project sample: Execution default of goal de.wintercloud:jinja-maven-plugin:1.0:renderjinja failed: A required class was missing while executing de.wintercloud:jinja-maven-plugin:1.0:renderjinja: org/yaml/snakeyaml/Yaml
Как я могу установить банку, чтобы использовать ее в качестве плагина? Мне кажется, что зависимости отсутствуют. Почему?