我正在练习Maven而且我已经撞墙了。我在IntelliJ上安装了PlantUml插件,我正在尝试将其设置为在编译时始终从源文件生成新图像。我正在使用this插件来生成图像,我已经按如下方式配置了pom.xml文件:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.github.jeluard</groupId>
<artifactId>plantuml-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>GeneratePlantUml</id>
<phase>generate-resources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/images</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<sourceFiles>
<directory>${basedir}/plantuml</directory>
<includes>
<include>TestGeneratorDiagram.puml</include>
</includes>
</sourceFiles>
<outputDirectory>${basedir}/images</outputDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>net.sourceforge.plantuml</groupId>
<artifactId>plantuml</artifactId>
<version>8031</version>
</dependency>
</dependencies>
</plugin>
<plugins>
</pluginManagement>
<build>
当我使用终端命令指定目标时,这可以正常工作:
mvn compile com.github.jeluard:plantuml-maven-plugin:generate
但是,如果我只写:
,它就不起作用mvn compile
据我所知,这也应该有效。我已经尝试在编译时设置阶段,但它没有改变任何东西。我现在已经搜索了几个小时的解决方案,但我还没找到。有没有人知道如何通过配置pom来强制插件在编译时生成新图像?
答案 0 :(得分:1)
您已将配置放入pluginManagement
。您需要将其放入plugins
(外部 pluginManagement
)。
pluginManagement只是覆盖/指定配置和版本号。
答案 1 :(得分:-1)
你的插件和你的执行是配置à“生成资源”阶段而不是你想要的编译阶段。 有关阶段的详细信息,请参阅此link。
改变这个:
<execution>
<id>GeneratePlantUml</id>
<phase>generate-resources</phase>
<goals>
<goal>generate</goal>
</goals>
到这个
<execution>
<id>GeneratePlantUml</id>
<phase>compile</phase>
<goals>
<goal>generate</goal>
</goals>
它必须有效。