2015-10-29 9 views
2

С maven pom, имеющим это в конфигурации сборки, мы создаем файл jar, который имеет файлы ресурсов прямо в пакетах рядом с файлами классов (это в моем случае необходимо, поскольку некоторые файлы классов полагаются на соглашение и ожидайте, что эти файлы ресурсов будут рядом с ними).Gradle для упаковки ресурсов с файлами классов в jar

<build> 
    ... 
    <resources> 
     <resource> 
      <directory>src/main/java</directory> 
      <includes> 
       <include>**/*.fxml</include> 
       <include>**/*.css</include> 
       <include>**/*.properties</include> 
      </includes> 
     </resource> 
     <resource> 
      <directory>src/main/resources</directory> 
      <includes> 
       <include>**/*.xml</include> 
       <include>**/*.css</include> 
       <include>**/*.properties</include> 
      </includes> 
     </resource> 
    </resources> 
    ... 
</build> 

Как мы можем сделать то же самое с градиентом?

ответ

2

Вам нужно добавить следующий фрагмент кода:

apply plugin: 'java' 

jar { 
    from('src/main/java') { 
     include '**/*.properties' 
     include '**/*.xml' 
     include '**/*.css' 
    } 
} 

Он работает следующим образом:

➜ 33416293 git:(master) ✗ tree 
. 
├── build.gradle 
└── src 
    └── main 
     └── java 
      └── lol 
       ├── Lol.java 
       ├── lol.css 
       ├── lol.properties 
       └── lol.xml 

4 directories, 5 files 
➜ 33416293 git:(master) ✗ gradle jar 
:compileJava 
:processResources UP-TO-DATE 
:classes 
:jar 

BUILD SUCCESSFUL 

Total time: 3.035 secs 
➜ 33416293 git:(master) ✗ jar -tvf build/libs/33416293.jar 
    0 Thu Oct 29 15:55:40 CET 2015 META-INF/ 
    25 Thu Oct 29 15:55:40 CET 2015 META-INF/MANIFEST.MF 
    0 Thu Oct 29 15:55:40 CET 2015 lol/ 
    242 Thu Oct 29 15:55:40 CET 2015 lol/Lol.class 
    8 Thu Oct 29 15:51:28 CET 2015 lol/lol.css 
    9 Thu Oct 29 15:47:00 CET 2015 lol/lol.properties 
    15 Thu Oct 29 15:51:22 CET 2015 lol/lol.xml 
➜ 33416293 git:(master) ✗ 

Здесь вы можете найти demo.

+0

awesome thanks :) – vach