【问题标题】:Eclipse and m2e: how to automatically exclude a resource folder from JAR?Eclipse 和 m2e:如何从 JAR 中自动排除资源文件夹?
【发布时间】:2012-02-02 09:07:02
【问题描述】:

我有一个 Maven 3 项目。我将项目配置文件存储到 src/main/config 目录中。我使用带有 m2e 插件的 Eclipse。我希望配置文件位于类路径中,因此我将 src/main/config 目录声明为父 POM 中的资源目录。但是,我不希望配置文件在我的 JAR 中。 当我将 src/main/config 声明为资源目录,并使用 m2eclipse 更新项目配置时,它会自动将 src/main/config 添加为源文件夹,但带有 exclude="**"。 Maven builder 插件将资源添加到类路径中。

但是,我希望我的配置文件在类路径中,而不是在我的 JAR 中。

我该怎么做?

谢谢

【问题讨论】:

  • 这些文件是什么类型的配置文件,听起来有点混乱......

标签: eclipse maven m2e


【解决方案1】:

我可以通过 pom.xml 中的以下配置实现相同的目的:-

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <excludes>
                    <exclude>*.xml</exclude>
                    <exclude>*.properties</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

【讨论】:

    【解决方案2】:

    使用 maven-resources-plugin 指定您不希望包含在 jar 中的配置文件。

    【讨论】:

    • maven-resources-plugin 不是我想要的。如果我使用此插件排除配置文件,它们不会复制到目标/类,因此我无法从 IDE 运行我的项目。解决方法是配置maven-jar-plugin,让maven-resources-plugin将文件复制到输出目录。
    【解决方案3】:

    最后可以在maven-jar-plugin中配置。 maven-resources-plugin 将 src/main/config 的内容复制到 target/classes 目录,因为 src/main/config 在 POM 中被声明为资源。而且,为了从 JAR 中排除文件,我使用了 maven-jar-plugin 元素中的元素来排除我的配置文件。

    【讨论】:

      猜你喜欢
      • 2014-03-17
      • 1970-01-01
      • 2018-04-01
      • 2015-03-10
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      相关资源
      最近更新 更多