亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 maven 插件和調用 maven 項目 pom 之間共享屬性

在 maven 插件和調用 maven 項目 pom 之間共享屬性

aluckdog 2023-02-23 15:48:59
我已經創建了一個 Maven 插件 P,我想將其用作另一個 Maven 項目 A 的依賴項。我正在為來自 Maven 項目 A 的 pom 的插件 P 提供一些參數。我想根據項目 A 提供的參數在插件 P 中設置一些屬性,并希望它們在項目 A 的 pom 中被引用。我該怎么做?我已經嘗試在插件 P 中為 MavenProject 設置屬性。如何在項目 A 的 pom 中引用它們?項目 A pom 片段:<plugin>                <groupId>sample.plugin</groupId>                <artifactId>sample-plugin</artifactId>                <version>1.0.0-SNAPSHOT</version>                <executions>                  <execution>                    <goals>                      <goal>testing</goal>                    </goals>                    <configuration>                        <param1>value1</param1>                        <param2>value2</param2>                    </configuration>                  </execution>                </executions></plugin>插件 P 代碼片段@Mojo( name = "testing")public class TestMojo extends AbstractMojo{    .    .     @Parameter(property = "param1")    private String param1;    @Parameter(property = "param2")    private String param2;    @Parameter(defaultValue = "${project}")    private org.apache.maven.project.MavenProject project;    public void execute() throws MojoExecutionException    {        if(param1.equalsIgnoreCase("value1")){              project.getProperties().setProperty("PROP1","val1");        } else{              project.getProperties().setProperty("PROP1","val3");            }        if(param2.equalsIgnoreCase("value2")){              project.getProperties().setProperty("PROP2","val2");        } else{              project.getProperties().setProperty("PROP2","val3");        }     }}I expect the PROP1 and PROP2 to be used in project A
查看完整描述

2 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

如果我正確理解這個問題,請嘗試添加:


<dependencies>

   <dependency>

      <groupId>sample.plugin</groupId>

      <artifactId>sample-plugin</artifactId>

      <version>1.0.0-SNAPSHOT</version>

   </dependency>

</dependencies>

Plugin P在的文件底部pom.xml,就在結束之前</project>


我不確定這是否有效,因為我對 Maven 的了解有限,但請告訴我。


祝你好運。


查看完整回答
反對 回復 2023-02-23
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

找到解決方案,如果我們在插件配置中添加${project} A作為參數,我們就可以給它添加屬性,可以在project A pom中引用。


前任:


<plugin>

                <groupId>sample.plugin</groupId>

                <artifactId>sample-plugin</artifactId>

                <version>1.0.0-SNAPSHOT</version>

                <executions>

                  <execution>

                    <goals>

                      <goal>testing</goal>

                    </goals>

                    <configuration>

                        <param1>value1</param1>

                        <param2>value2</param2>

                        <project>${project}</project>

                    </configuration>

                  </execution>

                </executions>

</plugin>

在插件中可以使用這個 Maven 項目


project.getProperties.setProperty("projectProperty",propertyValue);


查看完整回答
反對 回復 2023-02-23
  • 2 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號