从maven的资源目录中排除文件

时间:2017-05-10 07:59:09

标签: java maven spring-boot

我正在使用maven作为我的春季启动应用程序(1.5版本)。 src/main/resources中有一些文件,例如abc.propertiesapp.json。下面是我想要实现的一些指针。

  1. 排除这些文件进入jar。
  2. 当我通过intellij运行我的应用程序时,这些文件应该在classpath中可用。
  3. 我在SO上查看了相关答案,但没有一个符合我的情况。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

你可以在maven pom文件中使用resouce标签:

  <resources>
      <resource>
        <directory>[your directory]</directory>
        <excludes>
          <exclude>[non-resource file #1]</exclude>
          <exclude>[non-resource file #2]</exclude>
          <exclude>[non-resource file #3]</exclude>
          ...
          <exclude>[non-resource file #n]</exclude>
        </excludes>
      </resource>
      ...
    </resources>

有关更多信息,请参阅:https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

答案 1 :(得分:0)

我的理解是

  1. 您需要一些配置文件,在运行时
  2. 中可在classpath中使用
  3. 此类配置文件将根据环境进行更改
  4. 我以前的做法是:

    1. 为此类资源创建单独的目录,例如src/main/appconfig/
    2. 请勿将此内容包含在POM的资源中(即它们不包含在最终的JAR中)
    3. 在IDE中,手动添加此目录作为源文件夹(我通常将其放在POM中的testResource中。当我使用Eclipse + M2E时,testResource将被添加为源文件夹。不确定如何IntelliJ虽然)
    4. 对于第2点,我过去常常略有不同。我将在结果JAR中包含但不包括在内,而是在一个单独的目录(例如appconfig-template)中,以便使用该应用程序的人可以将其作为参考来配置他们的环境。

      3的替代方法是:创建一个单独的个人资料,其中包含appconfig resource。仅将此配置文件用于IDE设置,但不构建工件。