Tag: gradle

多项目构建中的Gradle – 路径

我有一个多项目gradle项目,具有以下目录结构: + project_root + module1 + src build.gradle + module2 + src build.gradle + web .. build.gradle settings.gradle 在我指定的其他事物中的module1/build.gradle中: compileKotlin2Js.kotlinOptions { outputFile = “web/script.js” } 这是一个特殊的Kotlin JS设置,指定编译的JS文件的输出文件路径。 现在我的问题是,当我建立整个项目( project_root/build.gradle )文件结束在正确的目录( project_root/web ),但是当我不小心运行建立在模块单独的文件被保存在模块目录( project_root/module1/web )。 我如何修复我的构建脚本中的路径,所以文件输出将保存在完全相同的目录,无论我运行哪个构建脚本(没有指定完整路径,我想要一个相对路径)?

在intellij中运行并执行jar时的微妙差异

我正在用尽想法 当我运行在indellij和gradle理念插件应用 ( 应用插件:’想法’ )时,我的春季启动应用程序表现良好。 一旦我从build.gradle中移除插件,它的行为与使用java -jar app.jar执行的应用程序的行为类似 – 下面的描述存在细微但重要的区别。 我有以下情况,由于某些exception,当前tx失败,tx被标记为仅回滚,exception被捕获,并且其处理包括使用TransactionSynchronizationManager.registerSynchronization (new tx)注册后续tx恢复活动。 代码工作正常与思想插件intellij,当我删除插件声明或运行与java -jar注册过程(后tx失败任务)的弹簧启动jar失败,例外: Caused by: java.lang.IllegalStateException: Transaction synchronization is not active at org.springframework.transaction.support.TransactionSynchronizationManager.registerSynchronization(TransactionSynchronizationManager.java:291) ~[spring-tx-4.3.10.RELEASE.jar!/:4.3.10.RELEASE] 顺便说一句,代码是在kotlin,如果它很重要。 有任何想法吗? UPDATE 我觉得有一种竞争条件,因为在调试模式,即使没有理念的插件,应用程序的行为如预期(注册过程成功)。

IntelliJ IDEA使用Gradle构建文件中指定的依赖关系的JavaScript“版本”?

最近(过去几天)这个问题开始发生在我的一台开发机器上。 我正在使用Eclipse的Vert.x的依赖关系为一个Web项目: 的build.gradle dependencies { … // Kotlin compile “org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version” // Vert.x for web framework compile group: ‘io.vertx’, name: ‘vertx-core’, version: ‘3.4.2’ compile group: ‘io.vertx’, name: ‘vertx-web’, version: ‘3.4.2’ … } 这在过去运行良好 – 我认为触发行动是我升级到IntelliJ 2017.2.2,但现在: IntelliJ无法解析任何-web导入: 如果我检查我的模块的依赖项列表,将显示依赖项的JavaScript版本? 这是怎么发生的 ,我怎样才能确保它被正确识别为Java依赖? 编辑:示例项目可在这里: https : //youtrack.jetbrains.com/issue/IDEA-177950

具有不同源代码集的Gradle任务

我有两个任务, jar和run ,都依赖于build任务。 当被调用的时候,我希望它只在特定文件夹中构建文件。 然后当run被称为我想它建立相同的文件, jar做了加上另一个文件夹中的文件。 这是一个sudo代码示例: jar.build.sourcesets += ‘my/path/to/files’ run.build.sourcesets += jar.build.sourcesets run.build.sourcesets += ‘additonal/path/to/files’ 这是我现在在我的build.gradle文件不工作: sourceSets { main.kotlin.srcDirs += ‘src/main/kotlin’ run.kotlin.srcDirs += ‘src/test/kotlin’ run.resources.srcDirs += “src/main/resources” run.resources.srcDirs += “src/test/resources” run.output.resourcesDir = “build/js/resources” } 我一直在阅读关于源代码集,但我还没有find一个解决方案。 我应该怎么做呢?

在org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated找不到属性’run’

我正在使用Gradle的Spring Boot。 升级到以下内容: classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.3.0.RC1”) 。 。 。 从1.2.7.RELEASE导致以下问题: * What went wrong: A problem occurred evaluating root project ‘vampr’. > Could not find property ‘run’ on org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated@12e13f2b. 如何解决这个问题? 构建文件: buildscript { ext.kotlin_version = ‘1.0.0-beta-1038’ repositories { maven { url “https://repo.spring.io/libs-milestone” } maven { url “https://repo.spring.io/libs-release” } mavenLocal() mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE”) } […]

Android Studio 3.1 Canary 3 – Gradle同步失败

不知道为什么Android Studio 3.1 Canary 3有bug并停止工作,我将gradle更新为3.1-alpha03 ,并停止工作,无论我再次下载该项目,是否再次下载了Android Studio。 我已经签出了旧版本的项目,但是这个消息仍然显示: Gradle sync failed: com.android.tools.idea.gradle.project.model.AndroidModuleModel.getSelectedVariant()Lcom/android/tools/idea/gradle/project/model/ide/android/IdeVariant; (8s 806ms) 我已经删除.idea文件夹, .gradle文件夹,无效并重新启动 我不知道还有什么可做的,不能运行或使用IDE。 编辑: EDIT2: 新项目也不起作用

许多小模块,或几个大型模块的最佳构建性能?

几年前,当第一次采用gradle for Android(在Gradle 2.0之前)时,我发现使用和取决于一个模块有一些开销,所以我远离将我的项目拆分成更小的模块,而是创建非常大的模块。 在尝试了一些其他的构建系统(比如Buck)之后,通过将你的代码分解成多个小模块来获得性能。 一些像Kotlin这样的现代编程语言甚至有专门建立在将你的代码分解成模块的概念的可见性修饰符。 我们目前在Gradle 2.14.1(差不多3.0),在过去几个版本中,他们引用了巨大的性能收益。 随着Gradle / Android插件在过去几年的变化,它现在是否产生更快的构建,将您的代码拆分成更小的模块,或者使用更少的大模块?

如何使IntelliJ参考源代码在另一个模块?

我有一个典型的项目结构: – root-dir (not a project) \- core-module (a gradle project) \- application (a gradle project) core-module和application都被导入IntelliJ并保持在自动导入。 在application的build.gradle , core-module被引用为: compile(‘my-group-id:core-module:0.2.0-SNAPSHOT’) 其中0.2.0-SNAPSHOT是在core-module的gradle.properties声明的当前版本。 在application ,当我尝试从core-module查看一个类时,我将其带入core-module-0.2.0-SNAPSHOT-sources.jar中的源代码,而不是core-module模块中的相应源代码。 我知道我可以在application手动添加core-module作为模块依赖项,但下一次application的build.gradle任何内容build.gradle改变,自动导入将会覆盖该依赖项。 有没有什么办法让IntelliJ自动识别,我想从另一个模块查看类,并去那里,而不是下载的源代码jar? 此外,有没有什么办法让IntelliJ总是比依赖jar更喜欢core-module模块,不仅用于代码查看,还用于构建/运行/调试等等。 所有的源文件都在Kotlin,FWIW。

在gradle应用程序中找不到ant-javafx

在使用JavaFX编写我的第一个应用程序时,我确保JAVA_HOME安装正确,并将javafx-gradle-plugin到我的应用程序中,但是在我的JDK中有一个缺少实际可用的ant-javafx-library的错误: 我的build.gradle和我得到的错误信息如下: // set up the kotlin-gradle plugin buildscript { ext.kotlin_version = ‘1.1.60’ repositories { mavenLocal() // mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” classpath “de.dynamicfiles.projects.gradle.plugins:javafx-gradle-plugin:8.8.2” } } // apply the kotlin-gradle plugin apply plugin: “kotlin” apply plugin: ‘javafx-gradle-plugin’ // add kotlin-stdlib dependencies. repositories { mavenLocal() // mavenCentral() } dependencies { //dependencies from a remote repositor […]

执行任务’:app:compileDebugKotlin’失败。 >内部编译器错误。 查看日志了解更多详情

这是我的build.gradle(应用程序)文件 请帮忙。 我已经将我的Android Studio升级到3.0.0并且此代码是从Android示例代码获取的。 我只是试图导入所有的。 错误如下: 错误:执行任务’:app:compileDebugKotlin’失败。 内部编译器错误。 查看日志了解更多详情 apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ android { buildToolsVersion ‘26.0.2’ compileSdkVersion 26 defaultConfig { applicationId “com.sumukh.kotlin.topekaquiz” minSdkVersion 15 targetSdkVersion 26 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } packagingOptions { exclude ‘LICENSE.txt’ } […]

Kotlin language will be the best programming language for Android.