Maven - 使用maven-tiles

时间:2016-07-25 01:18:41

标签: java maven

为了在许多项目中使用相同的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 failsafe插件定义的配置。问题是故障安全插件的验证目标不能正常工作(没有使用'mvn verify'运行集成测试)

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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>