2017-06-05 75 views
0

我有一个Java应用程序构建在maven下。它包含两个属性文件 - application.default.properties和application.properties。第二个假设补充和/或覆盖一些属性。我也有同样的src/main/resources目录中的logback.xml文件。 我想在jar文件中保留日志记录和默认属性,但将application.properies移动到树的根目录。我把下面的一块到我的pom.xml选择性复制maven资源

<resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <targetPath>${user.dir}</targetPath> 
      <filtering>false</filtering> 
      <includes> 
       <include>application.properties</include> 
      </includes> 
     </resource> 
    </resources> 

它确实复制application.properties文件如预期的构建部分,但其他两个文件从jar文件就消失了。 有人可以告诉我我做错了什么,以及如何缓解这个问题。 P.S.我确实浏览过maven文档,但在那里找不到答案,所以请不要告诉我RTFM,但是如果有,请提供一个指向它的指针。

回答

1

你需要的是另一种<resource>节将包括application.default.propertieslogback.xml,区别对待。

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <targetPath>${user.dir}</targetPath> 
      <filtering>false</filtering> 
      <includes> 
       <include>application.properties</include> 
      </includes> 
     </resource> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>false</filtering> 
      <excludes> 
       <exclude>application.properties</exclude> 
      </excludes> 
     </resource> 
    </resources> 
</build> 

此副本application.properties${user.dir}和包一切从的src/main /资源否则到输出罐子。

+0

谢谢。它像一个魅力。 –

0

您将不得不将所需的特定文件在根目录下移动到另一个目录。

你对包含模式所做的事情隐含地排除了其他文件。如果包含它们,它们也会被移动。