Tag: gradle

使用Gradle将所有创建的和第三方jar复制到一个文件夹中

我们有一个多项目gradle设置,每个子项目都有一个Java jar: – root-project |-sub-project-a |-sub-project-b |-sub-project-c 现在,因为我们正在创建Java webstart应用程序,所以我们需要签署所有项目jar以及所有第三方库(依赖项)。 我现在的方法是将所有已构建的子项目jar和所有第三方库复制到一个单独的文件夹中,并执行签名任务。 但是我无法复制jar子。 这是我在root build.gradle中的方法: task copyFiles(type: Copy, dependsOn: subprojects.jar) { from configurations.runtime from(“build/libs”) into(“webstart/lib”) include(‘*.jar’) } 和…一起: task signAll(dependsOn: [copyFiles]) << { new File('webstart/signed').mkdirs() def libFiles = files { file('webstart/lib').listFiles() } … } 然后我尝试执行gradle signAll。 但是,我只能在webstart / lib文件夹中找到一个带有根项目名称的空jar。 也许我的做法完全错了。 如何将所有创建的和第三方派对复制到一个文件夹中?

依赖关系未复制到jar中(在Gradle中)

TL; DR我希望将模块的依赖关系构建到其.jar中,但它们似乎不是。 我正在使用Gradle来构建一个项目。 我有两个子项目, app (Android模块)和tests (Java模块),由IntelliJ创建。 由于我想在tests内容中使用app中定义的类,因此我添加了适当的依赖项。 受到这个答案的启发,我有以下设置: 应用程序/的build.gradle: … task jarTask(type: Jar) { baseName =”${project.archivesBaseName}” from android.sourceSets.main.java } configurations { jarConfiguration } artifacts { jarConfiguration jarTask } 测试/的build.gradle … dependencies { … testCompile project(path: ‘:app’, configuration: ‘jarConfiguration’) } 但是, app一个类导入org.json.JSONObject 。 由于这是由Android SDK提供的, app可以很好地找到它 – 但是当我尝试运行测试时,我得到(在:tests:compileTestJava )“package org.json不存在”。 但是,如果我更新tests / build.gradle … dependencies […]

如何使gradle构建Javadoc警告失败

我正在使用Java 7(尽管使用1.6编译)来编译类和javadoc。 我已经消除了所有出现的javadoc警告,但是如果有任何javadoc警告,那么想法是让构建失败。 使用Java 8,这是默认行为。 但是,在警告方面它也更加严格(如果方法没有列出所有@params或@returns,我们不希望发出警告)。 另外,我不认为公司很快就会转向8,所以这是一个没有实际意义的问题。 我希望有一些简单的标志设置为gradle失败,如果有警告(只有failonError)。 我在想的是刮掉javadoc进程的控制台输出。 如果该输出包含警告,那么我知道有警告,并且构建应该失败。 这是我的build.gradle中的javadoc块: task gendocs(type: Javadoc) { options.stylesheetFile = new File(“./assets/doc_style.css”) options.windowTitle = “OurTitle” options.memberLevel = JavadocMemberLevel.PROTECTED options.author = true options.linksOffline(‘http://d.android.com/reference’, System.getenv(“ANDROID_HOME”) + ‘/docs/reference’) String v = “${SEMVER}” version = v.replace(“_”, ‘.’) destinationDir = new File(“${BUNDLE_FOLDER}/docs/api”) source = sourceSets.main.allJava classpath += configurations.compile } 所以,如果没有更简单的方法来做到这一点,我如何检查javadoc的控制台输出来刮掉它?

Gradle编译但不运行TestNG测试

我们刚开始在我们的项目中使用Gradle和TestNG,所以我正在检查是否实际上没有任何测试失败。 我很惊讶地发现它没有。 测试被选中并正确编译,所以我看到了类文件。 我也得到了一个关于跑步的报告,但它说了0次测试(预计2次)。 运行gradle clean test -i给出了以下内容: :contentplatform-service:compileTestJava (Thread[Daemon worker Thread 7,5,main]) started. :contentplatform-service:compileTestJava Executing task ‘:contentplatform-service:compileTestJava’ (up-to-date check took 0.08 secs) due to: Output file D:\Dev\contentplatform-service\build\classes\test has changed. Output file D:\Dev\contentplatform-service\build\dependency-cache has changed. Output file D:\Dev\contentplatform-service\build\classes\test\nl\xillio\conten tplatform\service\SuperSimpleTest.class has been removed. All input files are considered out-of-date for incremental task ‘:contentplatfor m-service:compileTestJava’. Compiling with […]

Gradle buildConfigField:数组和映射的语法?

关于buildConfigField的android gradle文档说: void buildConfigField(String type,String name,String value) 向生成的BuildConfig类添加一个新字段。 该字段生成为:type name = value; 这意味着每个必须具有有效的Java内容。 如果类型是String,则该值应包含引号。 我找不到有关Arrays,Arraylist或HashMap的buildConfigField值语法的任何信息? 由于它们被编译成java代码,通常一切都应该是可能的。 有没有人有一些例子或文件?

Gradle:使用项目类路径执行Groovy交互式shell

我有一个由几个子项目组成的Gradle项目。 我刚刚创建了一个新的,以添加对我想要运行的交互式Groovy shell的支持: gradle console 要么 gradle console:run 所以我的新console模块的build.gradle文件如下: apply plugin: ‘groovy’ apply plugin:’application’ mainClassName = ‘org.codehaus.groovy.tools.shell.Main’ dependencies { compile ‘org.codehaus.groovy:groovy-all:2.2.2’ compile ‘org.fusesource.jansi:jansi:1.11’ compile ‘commons-cli:commons-cli:1.2’ compile ‘jline:jline:2.11’ compile project(‘:my-module’) } task(console, dependsOn: ‘classes’, type: JavaExec) { main = ‘org.codehaus.groovy.tools.shell.Main’ classpath = sourceSets.main.runtimeClasspath } 但是,当我运行gradle :console:run或gradle console我得到类似的东西: :console:run Groovy Shell (2.2.2, JVM: 1.6.0_45) Type ‘help’ or […]

如何使用gradle。 Java和Groovy在一起?

我试图在IntelliJ 13中使用Gradle项目,但我一直遇到以下问题: Java文件无法看到Groovy文件 IntelliJ似乎忘记了Groovy,并提示我为它配置GDK 我读到groovy插件允许Groovy和Java在混合自己的源路径中,但Java想要它自己的。 所以我有以下目录结构: SRC \主\常规 SRC \主\ java中 SRC \测试\常规 我有Java和Groovy类的混合 这是我的build.gradle: apply plugin: ‘java’ apply plugin: ‘groovy’ apply plugin: ‘eclipse’ apply plugin: ‘idea’ apply plugin: ‘spring-boot’ apply plugin: ‘jacoco’ apply plugin: ‘war’ buildscript { repositories { maven { url “http://repo.spring.io/libs-snapshot” } mavenLocal() } dependencies { classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.0.0.RC4”) } } jar { baseName […]

在Gradle构建之后,Intellij Idea不会在消息工具窗口中显示错误

Intellij Idea 14.1.2,Gradle 2.3 我有一个项目,几个java子项目。 Gradle构建按预期工作,但Intellij Idea不捕获它的输出,也不显示消息工具窗口,您可以在其中单击错误并转到源文件。 重现步骤: 创建新的gradle项目 使用一种方法创建新类 故意介绍一个错误 使用Gradle工具窗口构建 预期结果:消息工具窗口将显示错误。 实际结果:输出显示在“运行”工具窗口中,但未显示“消息”窗口(它的菜单项在“视图” – >“工具”窗口中甚至不活动) 我试图重新导入项目,从头开始创建它,搜索Idea的设置,在* .iml中手动操作值,但没有成功,我的想法已经用完了。 我知道在哪里可以找到一个告诉IDE将输出定向到Messages窗口的设置?

是否可以使用gradle’application’插件指定多个主类

我想使用Gradle“application”插件为第二个mainClass创建startScripts。 这可能吗? 即使应用程序插件没有内置此function,是否可以利用startScripts任务为不同的mainClass创建第二对脚本?

Maven或Gradle构建类型/变体

Android Gradle插件增加了对构建类型和构建变体的支持,使您可以在构建步骤(例如,调试或发布)中选择要构建的应用程序版本。 这对于Gradle项目来说是一个非常有用的function,因为您可以拥有两个版本的应用程序,这些版本在某些情况下可能表现不同,或者具有不同的配置文件或属性,具体取决于构建类型。 现在,我的问题是:Maven或Gradle的非Android Java项目是否有类似的function/实现? 我正在寻找专门针对Java Web应用程序,但我认为这个问题也可能有更大的目标。