我想用gradle将一些Java文件编译为一个jar文件。
目的是将它们添加到jar中并检查测试的相关性。
Maven应该集成junit库。
我也想应用某种过滤器来仅测试带有*Tests.java
的文件build.gradle
文件与src
文件夹位于同一目录中。
我的文件结构(文件夹或文件名无法更改):
src/eu/conflicts/Conflicts.java
src/eu/conflicts/ConflictsTests.java
src/eu/utils/BuggyUtils.java
src/eu/utils/BuggyUtilsTests.java
运行
gradle -b build.gradle jar
后,我收到错误消息:Could not find the main method
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.12'
}
sourceSets {
main {
conflicts {
srcDir = 'src/eu/conflicts'
}
utils {
srcDir = 'src/eu/utils'
}
}
test {
conflicts {
srcDir = 'src/eu/conflicts'
}
utils {
srcDir = 'src/eu/utils'
}
}
}
jar {
baseName = 'xy'
version = '0.1'
manifest {
attributes("Implementation-Title": "xy",
"Implementation-Version": 0.1)
}
}
最佳答案
您的源集定义不正确。 Java插件仅支持源集中的java
和resources
源类型。每个源集可以有一个任意名称。如果您将源集命名为main
,它将定制jar任务约定使用的源集。所以:
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src'
exclude '**/*Tests.java'
}
}
test {
java {
srcDir 'src'
include '**/*Tests.java'
}
}
}
关于java - 如何使用gradle java-plugin将一些Java文件构建到一个jar中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44310572/