在构建配置中使用maven pom时,我们正在构建一个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>

我们如何用gradle做同样的事情?

最佳答案

您需要添加以下代码:

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

09-10 09:03
查看更多