【问题标题】:Exclude directive within parent POM父 POM 中的排除指令
【发布时间】:2015-11-21 13:39:44
【问题描述】:

我正在尝试排除要嵌入 JAR 中的完整文件夹。我发现以下指令就像一个魅力:

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>**/unwantedJars/**</exclude>
                </excludes>
            </configuration>
        </plugin>
  </plugins>  

所以,当运行mvn clean install 时,没问题,我得到一个没有不需要的文件夹的 JAR。

但是,我有几个项目需要包含此指令(以及其他常见配置),所以我使用的是父 POM 项目。除了上述指令外,一切都运行良好。一旦我将此排除部分移至父 POM 定义,它就不再起作用了。

奇怪的是,如果我比较这两种配置的有效 POM,它们是完全相同的!

在当前项目的 POM 或父 POM 中使用此指令有什么区别?

【问题讨论】:

  • 为什么需要从打包中排除这些文件/文件夹?
  • 嗯,这个文件夹包含几个仅在设计时 (BIRT) 需要的 JAR,但一旦部署到运行环境中就完全没用了。嵌入它们会以相对较大的比例增加最终 JAR 的大小......

标签: java maven directory parent-pom


【解决方案1】:

你需要使用pluginManagement

parent-pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <build>
    ...
    <pluginManagement>
      <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>**/unwantedJars/**</exclude>
                </excludes>
            </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    ...
  </build>
</project>

child-pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <build>
    ...
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
    </plugins>
    ...
  </build>
</project>

【讨论】:

  • 感谢您的建议,但不幸的是它没有帮助。但是,回到最初的帖子……我们如何解释 2 个相同的有效 POM 会导致 2 个不同的结果?
猜你喜欢
  • 2018-04-12
  • 2013-08-20
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 2019-12-30
  • 2019-03-31
相关资源
最近更新 更多