我想将我的项目构建为仅包含我的代码的jar文件。该项目jar用作其他Java项目的库。
这是我的build.gradle:
plugins {
id 'java'
}
group 'com.my.lib'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
task sourcesJar(type: Jar) {
archiveClassifier = 'sources'
from sourceSets.main.allJava
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
构建项目后(我正在使用IntelliJ,单击“构建” ==>“重建项目”)。 IntelliJ告诉我构建成功,但是我看不到创建任何jar。为什么?
18:30:18: Executing tasks ':classes :testClasses'...
> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed
18:30:18: Tasks execution finished ':classes :testClasses'.
答案 0 :(得分:1)
IntelliJ IDEA的“构建项目”表单将编译您的代码以在IDE中使用,它并不直接与Gradle的build
生命周期任务联系在一起。
要让Gradle构建JAR,您需要运行./gradlew assemble
,它将获得预期的结果。
请注意,这将不会运行测试或静态分析。如果您希望它也能正常运行,则可以使用./gradlew build
。
这两个Gradle任务都可以在IntelliJ IDEA的Gradle工具窗口中执行。
答案 1 :(得分:0)
您上面的日志中没有提到sourcesJar
任务,这意味着该任务尚未运行。在设置>生成,执行,部署>生成工具> Gradle 菜单下,有两个设置可供考虑:
使用Gradle构建并运行
使用Gradle运行测试。
然后转到Idea中的Gradle工具窗口,同步项目并在“任务”组下查找任务。
如果您打算对项目中的所有开发人员都具有相同的行为,则可能应该坚持使用Gradle而不是使用Idea Artifacts 设置来构建jar文件。
答案 2 :(得分:0)
我发现即使有这些设置,当我选择Build-> Build project时,Intellij仍然没有运行Gradle build,这就是为什么在我最初的问题中没有显示“ sourceJar”的原因。我必须打开“ Gradle工具”窗口,单击该小象图标以运行gradle任务。然后,键入“ Gradle build”,然后运行源Jar任务。