【问题标题】:Maven overrides configuration in profiles pluginMaven 覆盖配置文件插件中的配置
【发布时间】:2015-04-28 04:30:24
【问题描述】:

我有 3 个带有插件的 maven 配置文件:

<profile>
   <id>first</id>
   <build>
     <plugins>
       <plugin>
           ...
        <configuration>
           <var>1</var>
        </configuration>
       </plugin>
     </plugins>
   </build>    
</profile>

<profile>
   <id>second</id>
   <build>
     <plugins>
       <plugin>
           ...
        <configuration>
           <var>2</var>
        </configuration>
       </plugin>
     </plugins>
   </build>    
</profile>

<profile>
   <id>third</id>
   <build>
     <plugins>
       <plugin>
           ...
        <configuration>
           <var>3</var>
        </configuration>
       </plugin>
     </plugins>
   </build>    
</profile>

当我使用 mvn clean install -P first,second,third -X 开始构建时,我发现所有这些插件都是使用来自第三个配置文件的配置执行的。有什么方法可以保留我的每个插件的配置并且不被第三个配置覆盖?

【问题讨论】:

  • 您可能需要为每个配置文件执行 3 次不同的操作
  • @JigarJoshi 你到底指的是什么参数?我有 3 种不同的处决(据说)像这样?当然对于配置文件中的每个插件:&lt;executions&gt; &lt;execution&gt; &lt;id&gt;some_id&lt;/id&gt; &lt;phase&gt;generate-sources&lt;/phase&gt; &lt;goals&gt; &lt;goal&gt;replace&lt;/goal&gt; &lt;/goals&gt; &lt;/execution&gt; &lt;/executions&gt;
  • 我的意思是mvn clean install -P firstmvn clean install -P secondmvn clean install -P third
  • 使用mainSkipproperty

标签: maven


【解决方案1】:

如 cmets 部分所述,您必须调用 3 个构建以不同方式激活每个配置文件

例如

mvn clean install -Pfirst
mvn clean install -Psecond
mvn clean install -Pthird

要在第二个和第三个禁用编译,您可以为这些配置文件配置 maven-compiler-plugin 并使用 skipMain 属性来禁用 main 的源代码编译,也用于测试

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 1970-01-01
    • 2011-05-30
    • 2011-01-04
    • 1970-01-01
    • 2019-04-11
    • 2012-03-07
    • 2018-12-10
    • 2013-02-22
    相关资源
    最近更新 更多