将参数发送到Maven插件

时间:2019-02-15 09:47:20

标签: java maven maven-plugin spring-boot-maven-plugin

在我的pom文件中,我使用此配置执行构建插件。

我可以从插件代码内部访问customProp吗?

<execution>
...
  <configuration>
    <configOptions>
      <additional-properties>useTags=true</additional-properties>
    </configOptions>
    <customProp>custom-value</customProp>

2 个答案:

答案 0 :(得分:1)

假设您正在开发插件...

是的,有可能。查看post部分的Maven插件开发指南。

您必须在Mojo中定义一个属性:

@Parameter( property = "your-plugin.customProperty", defaultValue = "custom" )
private String customProperty;

答案 1 :(得分:1)

如果我对您的理解正确,那么在配置spring-boot-maven-plugin并构建应用程序时,您可以通过BuildProperties对象访问有关应用程序构建的信息,例如-

@Autowired
BuildProperties buildProperties;

读起来像-

// Artifact's name from the pom.xml file
buildProperties.getName();
// Artifact version
buildProperties.getVersion();

如果预定义属性还不够,您可以将自己的属性从pom.xml文件传递到BuildProperties

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>build-info</goal>
            </goals>
            <configuration>    
                <additionalProperties>                    
                      <java.version>${java.version}</java.version>                    
                      <some.custom.property>some value</some.custom.property>                
               </additionalProperties>            
            </configuration>        
     </execution>
    </executions>
</plugin>

您可以直接传递值,也可以使用<properties>的{​​{1}}部分中定义的自定义属性,然后使用pom.xml占位符进行引用。

您可以通过调用${property.name}

来访问以此方式定义的自定义属性