2017-05-10 115 views
0

我對我的spring啓動應用程序(1.5版本)使用maven。有一些文件在src/main/resources,如abc.properties,app.json。下面是我想要實現的一些指針。從maven的資源目錄中排除文件

  1. 排除這些文件進入jar。
  2. 當我通過intellij運行我的應用程序時,這些文件應該在classpath中可用。

我看了SO上的相關答案,但沒有一個匹配我的情況。任何建議?

+1

他們爲什麼不在罐子裏?在'src/main/resources'中應該只有應用程序的資源,在運行時 – Jens

+0

需要這些資源,因爲這些文件的內容會發生變化,我將不得不每次都重新創建該jar。 – ProgrammerBoy

+0

什麼時候文件更改? – Jens

回答

1

可以使用種源標籤中的Maven POM文件:

<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

+0

之外的項目當前正在使用這個,但是在我的問題中點2如何? – ProgrammerBoy

0

我的理解是

  1. 你想要一些配置文件,可用在運行時在類路徑中
  2. 這樣的配置文件將根據環境而改變

我以前做的方式是:

  1. 對於此類資源,例如創建一個單獨的目錄src/main/appconfig/
  2. 不包括這在POM的資源(即它們不包括在導致JAR)
  3. 在IDE中,這個目錄手動添加源文件夾(我通常在POM把這個testResource。當我使用Eclipse + M2E ,testResource s將被添加爲源文件夾。不知道如何IntelliJ雖然)

對於點2,我用它做了稍微不同。除了排除之外,我將包含在結果JAR中,但包含在單獨的目錄中(例如appconfig-template),以便使用該應用程序的人員可以將其作爲參考來配置其環境。

3的替代方法是:創建一個單獨的配置文件,其中包括appconfigresource。僅將此配置文件用於IDE設置,但不能構建您的工件。

相關問題