2017-05-10 83 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设置,但不能构建您的工件。

相关问题