在pom.xml中包含另一个xml文件

时间:2015-01-05 06:21:11

标签: xml maven

我正在尝试将文件包含在 pom.xml (maven) 中。     我的 pom.xml 看起来很喜欢这个

<?xml version="1.0" encoding="UTF-8"?>
<project>
<!-- <xi:include href="minify.xml" xmlns:xi="http://www.w3.org/2003/XInclude"/>
 -->  <modelVersion>4.0.0</modelVersion>
  <groupId>myproject</groupId>
  <artifactId>myproject</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <description></description>
  <build>
    <plugins>

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    <!-- include plugin tag from other xml file -->
// I would like maintain one seperate xml file to hold all plugin tags (to reduce pom.xml //file content.
</plugins>

我正在 "com.samaxes.maven" 使用 minify css and js files 。 但我已将我的css和js文件保存在许多单独的文件夹中。我需要重复包含以下标签

<plugin>
    <groupId>com.samaxes.maven</groupId>
    <artifactId>minify-maven-plugin</artifactId>
    <version>1.7.4</version>
    <executions>
        <execution>
            <id>default-minify-1</id>
            <configuration>
                   <charset>utf-8</charset>
                   <jsEngine>CLOSURE</jsEngine>
                   <skipMerge>true</skipMerge>
                   <nosuffix>true</nosuffix>
                  <!--   <skipMinify>true</skipMinify>   -->   <!--skips already minfied css fiels -->

                    <cssSourceDir>inc/one/css</cssSourceDir>
                   <cssTargetDir>inc/one/css/mini</cssTargetDir>
                   <cssSourceIncludes>
                      <cssSourceInclude>*.css</cssSourceInclude>
                   </cssSourceIncludes>

                    <jsSourceDir>proj/platform/common/js/</jsSourceDir>
                   <jsTargetDir>proj/platform/common/js/mini</jsTargetDir>
                   <jsSourceIncludes>
                     <jsSourceInclude>*.js</jsSourceInclude>
                   </jsSourceIncludes>
                   <closureCreateSourceMap>true</closureCreateSourceMap>
            </configuration>
            <goals>
                <goal>minify</goal>
            </goals>
        </execution>
    </executions>
 </plugin>

我用google搜索包含多个目录的可能方式,然后我决定通过重复上面的代码片段来包含所有目录。但后来虽然将所有mifiy包含到其他xml文件中。我正在寻找一些方法来包含标签内的xml文件。 有人请帮帮我。

1 个答案:

答案 0 :(得分:1)

我认为这不是应该使用maven的方式..

您可以做的是使用pluginManagement部分中的所有全局插件配置创建父pom.xml。然后你可以在所有你的孩子pom.xml中用id“default-minify-1”激活你配置的执行。但是配置只在父pom.xml中完成一次

请参阅Reusing ant-snippets in multi-module maven build