【问题标题】:Maven - Import Plugins configuration from one project to another using maven-tilesMaven - 使用 maven-tiles 将插件配置从一个项目导入另一个项目
【发布时间】:2016-11-28 05:57:10
【问题描述】:

为了在很多项目中使用同一个maven插件的配置,我尝试在一个核心项目中定义这个配置,然后导入到其他项目中。

我的解决方案基于this discussion,我使用了Maven Tile Plugin,并按照文档中说明的步骤进行操作。

  • 核心项目中的配置定义:

    1) pom.xml:

    <build>
        <plugins>
            <plugin>
                <groupId>io.repaint.maven</groupId>
                <artifactId>tiles-maven-plugin</artifactId>
                <version>2.8</version>
                <extensions>true</extensions>
                <configuration>
                    <filtering>true</filtering>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    2) tile.xml:

    <project>
      <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <!-- .... -->
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.19.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <!-- .... -->
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
      </build>
    </project>
    

    3) 构建核心项目

  • 在目标项目中导入配置:

在父 POM 中:

    <plugin>
        <groupId>io.repaint.maven</groupId>
        <artifactId>tiles-maven-plugin</artifactId>
        <version>2.8</version>
        <configuration>
            <buildSmells>pluginmanagement</buildSmells>
            <tiles>
                <tile>groupId:coreProjectId:1.1.0</tile>
            </tiles>
        </configuration>
    </plugin>

据我了解,使用 tile 插件导入核心项目必须允许使用为 maven 故障安全插件定义的配置。问题是故障安全插件的验证目标不是那样工作的(没有使用'mvn verify'运行集成测试)

任何关于定义 maven tile 插件或使用任何其他方法来重用核心配置的建议都会有所帮助。

感谢您的帮助。

【问题讨论】:

    标签: java maven


    【解决方案1】:

    buildSmells 标签应该定义在核心项目而不是目标项目中。

    这是 pom.xml 在核心项目中的配置方式:

    <build>
        <plugins>
            <plugin>
                <groupId>io.repaint.maven</groupId>
                <artifactId>tiles-maven-plugin</artifactId>
                <version>${plugin.tiles.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <buildSmells>pluginmanagement</buildSmells>
                    <filtering>true</filtering>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 2014-07-10
      • 2019-06-19
      • 2012-09-08
      • 2018-07-10
      • 2020-10-10
      • 2018-03-24
      • 2020-04-26
      • 1970-01-01
      相关资源
      最近更新 更多