Java 从maven'中排除文件;s资源目录

Java 从maven'中排除文件;s资源目录,java,maven,spring-boot,Java,Maven,Spring Boot,我将maven用于我的spring boot应用程序(1.5版本)。src/main/resources中有一些文件,比如abc.properties,app.json。下面是一些我想要达到的目标 排除进入jar的这些文件 当我通过intellij运行我的应用程序时,这些文件应该在类路径中可用 我看了相关的答案,但没有一个符合我的情况。有什么建议吗?您可以在maven pom文件中使用Resource标记: <resources> <resource>

我将maven用于我的spring boot应用程序(1.5版本)。
src/main/resources
中有一些文件,比如
abc.properties
app.json
。下面是一些我想要达到的目标

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

    您可以在maven pom文件中使用Resource标记:

      <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>
    
    
    [您的目录]
    [非资源文件#1]
    [非资源文件#2]
    [非资源文件#3]
    ...
    [非资源文件#n]
    ...
    

    有关更多信息,请参阅:

    您可以在maven pom文件中使用Resource标记:

      <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>
    
    
    [您的目录]
    [非资源文件#1]
    [非资源文件#2]
    [非资源文件#3]
    ...
    [非资源文件#n]
    ...
    
    有关更多信息,请参见:

    我的理解是

  • 您需要一些配置文件,这些文件在运行时在类路径中可用
  • 此类配置文件将根据环境进行更改
  • 我过去的做法是:

  • 为此类资源创建单独的目录,例如
    src/main/appconfig/
  • 不要将其包含在POM的资源中(即,它们不包含在生成的JAR中)
  • 在IDE中,手动将此目录添加为源文件夹(我通常将其放在POM中的
    testResource
    中。当我使用Eclipse+M2E时,
    testResource
    s将添加为源文件夹。但不确定IntelliJ如何添加)
  • 对于第二点,我过去的做法略有不同。我不会排除,而是将其包含在结果JAR中,但会包含在一个单独的目录(例如appconfig模板)中,以便使用该应用程序的用户可以将其作为参考来配置他们的环境

    3的另一种选择是:创建一个单独的配置文件,其中包括
    appconfig
    作为
    resource
    。此配置文件仅用于IDE设置,而不用于构建工件。

    我的理解是

  • 您需要一些配置文件,这些文件在运行时在类路径中可用
  • 此类配置文件将根据环境进行更改
  • 我过去的做法是:

  • 为此类资源创建单独的目录,例如
    src/main/appconfig/
  • 不要将其包含在POM的资源中(即,它们不包含在生成的JAR中)
  • 在IDE中,手动将此目录添加为源文件夹(我通常将其放在POM中的
    testResource
    中。当我使用Eclipse+M2E时,
    testResource
    s将添加为源文件夹。但不确定IntelliJ如何添加)
  • 对于第二点,我过去的做法略有不同。我不会排除,而是将其包含在结果JAR中,但会包含在一个单独的目录(例如appconfig模板)中,以便使用该应用程序的用户可以将其作为参考来配置他们的环境


    3的另一种选择是:创建一个单独的配置文件,其中包括
    appconfig
    作为
    resource
    。此配置文件仅用于IDE设置,而不用于构建工件。

    为什么它们不在jar中?在
    src/main/resources
    中,应该只有应用程序的资源,这些资源在运行时是必需的,因为这些文件的内容会更改,每次文件更改时,我都必须重新创建jar?将它们放入另一个安全文件夹(未注册为资源库)@Jens它存储数据库配置…当我转到生产时…它将具有生产数据库配置…而开发时我使用开发数据库配置为什么它们不在jar中?在
    src/main/resources
    中,应该只有应用程序的资源,这些资源在运行时是必需的,因为这些文件的内容会更改,每次文件更改时,我都必须重新创建jar?将它们放入另一个安全文件夹(未注册为资源库)@Jens它存储数据库配置..当我转到生产时…它将具有生产数据库配置..在开发时我使用开发数据库配置我目前正在使用它,但我问题中的第2点如何?我目前正在使用它,但我问题中的第2点如何?