Tag: gradle

库与Gradle 3.0.0-alphaX的依赖关系问题

我有一个包含许多依赖关系的子模块的库项目,我想传递给开发人员的应用程序。 例如,模块A可能包含所有必要的appcompat依赖项。 随着迁移的变化 ,我已经更新所有的compile案例为api ,这不应该影响任何东西。 但是,我不再有权访问任何库依赖项。 我只能使用我的库本身的代码和引用。 有没有办法解决? 我的库子模块的一个构建gradle文件可以在这里找到供参考。 依赖关系: dependencies { api "org.jetbrains.kotlin:kotlin-stdlib:${KOTLIN}" api "com.android.support:appcompat-v7:${ANDROID_SUPPORT_LIBS}" api "com.android.support:support-v13:${ANDROID_SUPPORT_LIBS}" api "com.android.support:design:${ANDROID_SUPPORT_LIBS}" api "com.android.support:recyclerview-v7:${ANDROID_SUPPORT_LIBS}" api "com.android.support:cardview-v7:${ANDROID_SUPPORT_LIBS}" api "com.android.support.constraint:constraint-layout:${CONSTRAINT_LAYOUT}" api "com.mikepenz:iconics-core:${ICONICS}@aar" api "com.mikepenz:google-material-typeface:${IICON_GOOGLE}.original@aar" api "com.afollestad.material-dialogs:core:${MATERIAL_DIALOG}" api "com.jakewharton.timber:timber:${TIMBER}" api "org.jetbrains.anko:anko-commons:${ANKO}" } 编辑: 为了澄清,模块中的示例项目实际上是正确构建的,但是在任何其他应用程序中使用依赖项时存在一个问题,即它从jitpack中抽取。 看到这个gradle作为一个不会构建的例子。 我尝试过使用api,implementation,@aar和transitive的组合。 想想看,这可能是一个jitpack问题,而不是一个gradle问题,但如果其他人有一个解决方案,我想听听它。

使用Gradle编译Kotlin jar时,在META-INF中生成无效的元数据

我最近遇到了一个内部编译器异常,当试图包括一个jar(其中包含从另一个Kotlin项目编译的类): java.io.FileNotFoundException: /home/[myUsername]/.m2/repository/com/my/library/1.0.0-SNAPSHOT/library-1.0.0-SNAPSHOT.jar!/META-INF/moduleName_main.kotlin_module at org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.ZipHandler.contentsToByteArray(ZipHandler.java:233) at org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.jar.CoreJarVirtualFile.contentsToByteArray(CoreJarVirtualFile.java:125) at org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider.processNotLoadedRelevantRoots(JvmPackagePartProvider.kt:67) at org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider.findPackageParts(JvmPackagePartProvider.kt:40) at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment$binaryClasses$2.invoke(LazyJavaPackageFragment.kt:37) at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment$binaryClasses$2.invoke(LazyJavaPackageFragment.kt:32) at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:321) at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:362) at org.jetbrains.kotlin.storage.StorageKt.getValue(storage.kt:39) at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment.getBinaryClasses$kotlin_compiler(LazyJavaPackageFragment.kt) at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope$kotlinScopes$2.invoke(JvmPackageScope.kt:44) at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope$kotlinScopes$2.invoke(JvmPackageScope.kt:36) at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:321) at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:362) at org.jetbrains.kotlin.storage.StorageKt.getValue(storage.kt:39) at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope.getKotlinScopes(JvmPackageScope.kt) at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope.getContributedClassifier(JvmPackageScope.kt:55) at org.jetbrains.kotlin.resolve.scopes.ChainedMemberScope.getContributedClassifier(ChainedMemberScope.kt:33) at org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter.getContributedClassifier(AbstractScopeAdapter.kt:41) at org.jetbrains.kotlin.resolve.lazy.FileScopeFactory$currentPackageScope$1.getContributedClassifier(FileScopeFactory.kt:153) at org.jetbrains.kotlin.resolve.scopes.utils.ScopeUtilsKt.findClassifier(ScopeUtils.kt:74) at org.jetbrains.kotlin.resolve.QualifiedExpressionResolver.resolveDescriptorForType(QualifiedExpressionResolver.kt:74) at org.jetbrains.kotlin.resolve.TypeResolver.resolveDescriptorForType(TypeResolver.kt:577) at org.jetbrains.kotlin.resolve.TypeResolver$resolveTypeElement$1.visitUserType(TypeResolver.kt:159) at org.jetbrains.kotlin.psi.KtVisitorVoid.visitUserType(KtVisitorVoid.java:905) at org.jetbrains.kotlin.psi.KtVisitorVoid.visitUserType(KtVisitorVoid.java:21) […]

从gradle运行HelloAndroid?

有很多数量和种类的gradle任务: thufir@dur:~/AndroidStudioProjects/HelloAndroid$ thufir@dur:~/AndroidStudioProjects/HelloAndroid$ gradle clean run FAILURE: Build failed with an exception. * What went wrong: Task 'run' not found in root project 'HelloAndroid'. * Try: Run gradle tasks to get a list of available tasks. Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log […]

Kotlin:测试中的java.lang.NoSuchMethodError

是否可以在不同的源代码集中使用Kotlin包函数和包的属性? 当我尝试这样做,我有NoSuchMethodError抛出。 例 我有Graft项目,包含Kotlin代码和两个源代码集, main和test 。 main ,我有一个文件中的以下代码: package ru.ifmo.ctddev.igushkin.dkvs … public val payloadSplitter: String = " ### " 在test我尝试使用以下代码访问payloadSplitter : package ru.ifmo.ctddev.igushkin.dkvs … public class MessageTests { … test fun testParsing() { … checkParseAndToString("p1b 345 ${payloadSplitter} set abc") } … } 正好在有效payloadSplitter的第一行,在运行时我得到了 java.lang.NoSuchMethodError: ru.ifmo.ctddev.igushkin.dkvs.DkvsPackage.getPayloadSplitter()Ljava/lang/String; 其他全局变量和函数在test中也是不可访问的。 UPD Kotlin团队解释了这个问题,并在这里宣布了修复。

IntelliJ中的Gradle SourceSet依赖关系

我有一个额外的源代码 – acceptance Gradle项目。 这包含我的验收测试,而不仅仅是建立时间单元和集成测试。 我也在标准test sourceSet中有一些帮助类,我想分享,但不属于main sourceSet。 目前这在Gradle中工作正常,但IntelliJ不喜欢它,我不知道为什么。 我的build.gradle看起来像这样: buildscript { ext { jackson_version = "2.9.0.pr4" // IntelliJ needs M4 junitJupiter_version = "5.0.0-M4" junitPlatform_version = "1.0.0-M4" kotlin_version = "1.1.3-2" slf4j_version = "1.7.25" spring_version = "4.3.10.RELEASE" springBoot_version = "1.5.4.RELEASE" springBootAdmin_version = "1.5.2" runAcceptance = System.properties['noAcceptance'] == null } repositories { mavenCentral() jcenter() } dependencies { […]

包含gradle脚本kotlin文件的IntelliJ自动完成

我试图使用gradle-script-kotlin来自动化一个复杂的构建过程,使用IntelliJ作为编辑器。 按照上一个问题中的建议,一个同事在build.gradle.kts文件中得到了正确的语法高亮显示,但是,由于它的复杂性,我试图使用应用程序将它分成许多小文件例: apply { for (script in otherKotlinScripts) from("buildscripts/$script.kts") } 唉,完成似乎实际上工作build.gradle.kts 。 在其他kotlin脚本文件,免费函数和任何我import工作很好,但特定于这个task封闭的事情: task("foo") { // intelliJ can't seem to figure out what the receiver is here, // task itself gets highlighted in red, and its members fail // to complete. } 有没有办法让intellij检测包含文件为gradle脚本?

由于重复,Kotlin gradle.build ZipException

我将Kotlin添加到具有依赖关系的Gradle.build(Kotlin版本1.0.4): compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 正如我发现它与我的其他依赖有冲突: compile 'org.jetbrains:annotations-java5:15.0' 运行构建后,它与ZipException异常: com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/jetbrains/annotations/Nullable.class 我已经尝试过了: 我试过这个解决方案: Kotlin,Java,multidex,Dagger 2,Butterknife和Realm:transformClassesWithJarMergingForDebug:重复条目:org / jetbrains / annotations / NotNull.class但是最后,不仅Nullable.class和NotNull.class是重复的,还包括来自org / intellij / lang / annotations /的类 。 我添加了五班后,仍然坠毁。 有没有更好的方法来摆脱这个问题,不要手动添加导致此异常的每个类? 更新(02.02.16) 正如我在这个问题上工作了一些,我发现对于我的项目相关的注释类是NonNls.class和Contract.class ,如果我删除org.jetbrains:annotations-java5:15.0缺少。 它们不在kotlin-runtime中,而是在Jetbrains注解依赖关系中。 我怎样才能添加它没有再次添加Jetbrains注解依赖?

如何在两个build.gradle.kts文件之间共享构建配置?

我有两个项目(在一个单一的git仓库),应该有相同的 repository { } 部分在他们的build.gradle.kts ,但是完全不相关。 我可以把这个共同的部分,包括在每个分别build.gradle.kts ? 怎么样?

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下的JUnit 5

我有一个项目,我正在把我想要使用JUnit 5。 我已经在单元测试中正常工作了。 然而,我确实有多个测试源集 – 我还有一个用于验收测试。 我正在努力研究如何让JUnit 5在一个任务中运行src / test中定义的单元测试,并在另一个任务中运行“acceptanceTest”sourceSet中定义的“验收测试”,并位于“src / acceptance”中任务。 我以前有过使用JUnit 4和Cucumber的工作,但JUnit 5插件似乎并不想这样工作。 的build.gradle: buildscript { ext { jackson_version = "2.9.0.pr4" // IntelliJ needs M4 junitJupiter_version = "5.0.0-M4" junitPlatform_version = "1.0.0-M4" kotlin_version = "1.1.3-2" slf4j_version = "1.7.25" spring_version = "4.3.10.RELEASE" springBoot_version = "1.5.4.RELEASE" springBootAdmin_version = "1.5.2" runAcceptance = System.properties['noAcceptance'] == null } repositories […]