Tag: gradle

如何减去常春藤依赖集

我的目标是将项目传递依赖关系划分为几个不交叉的集合: system(已经存在于j2ee容器中的jar;使用显式固定版本手动列出) 提供(将jar复制到j2ee容器;手动列出) 耳朵(jar子里面装有jar子,其余的) 我目前列出的解决方案有一些缺点: 必须逐个从耳塞中排除系统和提供的库 尚未明确排除的新的第三方传递deps可能会不小心听到 有时必须添加显式override重复库名称和版本 是否有一些方法可以消除这些缺点? 能够以某种方式定义一个conf作为其他人的依赖集减法(具有优雅的冲突解决方案)的结果将是很好的: ear = runtime – system – provided 。 当IVY-982得到修复时,可能支持表示法。 寻找适用的实际解决方案。 如果有解决方案,甚至愿意考虑改用gradle。 @;runtime->@;system->master;provided->runtime;ear->runtime;test->test(default)”> <!—-> 可以在IVY-1443附件中找到要试验的示例项目源。

在Gradle构建脚本中使用Java类

我有一个Gradle构建脚本,它必须在Task中实例化一个Java类并在创建的对象上调用一个方法。 目前,我有以下内容: apply plugin: ‘java’ dependencies { compile files(“libs/some.library.jar”) } task A << { def obj = new some.library.TestClass() obj.doSomething() } 问题是找不到类some.library.TestClass() 。 我读了这篇关于如何在Gradle中使用Groovy类的文章 ,但是我需要我的Java类来自外部JAR文件。 如何在构建源中添加jar? 似乎dependencies块阻止不会做我期望它做的事情。 谁能给我一个正确方向的提示?

如果找不到文件依赖项,如何使Gradle失败?

我有一个Gradle构建,它有一些表单的依赖项 compile files(‘path/to/local/lib.jar’) (构建正在迁移 – 最终将被替换) 构建失败,因为错误地指定了其中一个路径。 但由于编译错误而失败 – 看起来Gradle默默地忽略了缺失的依赖项。 是否存在一个简单的选项或开关,如果无法解析任何依赖关系(特别是本地文件依赖关系)(例如,文件丢失),将强制Gradle使构建失败? 编辑:进一步澄清: 如果在配置的存储库中找不到依赖项,Gradle将在尝试解析它时失败,如预期的那样。 但是 – 如果依赖项被定义为“编译文件….”,并且指定的文件在构建时不存在,Gradle将忽略该错误,并尝试编译。 这似乎是错误的头脑和不一致的默认行为。 我的问题是 – 是否有Gradle选项或开关或环境变量或系统属性,我可以设置为强制Gradlevalidation文件依赖性是否存在? (例如,以理智和理性的方式行事?)

Eclipse和Gradle类路径不同步:无法解析为类型

我们的Eclipse工作区遇到了令人沮丧的问题。 以下是正在发生的事情的高级示例: 项目A – src / main / java / … – build.gradle 项目B – src / main / java / … – build.gradle 在运行gradle eclipse并将项目导入Eclipse之后,我们偶尔会得到“MyType无法解析为类型”,即使以下情况属实: 我们的项目在其类路径上有Gradle库容器 项目在其Gradle容器中具有正确的工作区项目 像CTRL +点击工作的东西显示红色下划线(即编译错误)意味着Eclipse确切知道如何获取这些类型,但编译器找不到它们 命令行Gradle构建按预期工作 整个团队都在发生这种情况,我们无法弄清楚为什么Eclipse不断同步而无法不时编译。 通常解决问题的方法是: 项目>在Eclipse中清理 Gradle cleanEclipse或gradle eclipse 重新import项目 等等 其他说明: 使用Gradle版本2.2.1 发生在Eclipse Luna和Eclipse Mars中 使用JDK 8 有没有其他人在Eclipse中使用Gradle项目遇到这些类型的编译问题?

如何在build.gradle文件中添加OJDBC6.jar?

我在我的应用程序中连接到Oracle Db并尝试使用gradle构建来构建应用程序。 我无法从gradle build访问OJDBC6.jar。 可以请一些人,让我知道,我们如何将ojdbc6.jar添加到build.gradle文件中。

使用gradle eclipse插件指定JRE容器

即使sourceCompatibility和targetCompatibility的属性设置为特定的JRE版本, JRE_CONTAINER的classpathentry JRE_CONTAINER只会被生成为 ,eclipse设置中”Installed JREs“下的默认JRE-Version并不总是与我想在项目中使用的JRE-Version相匹配。 当gradle与gradle eclipse一起运行时,如何让gradle将JRE_CONTAINER设置为特定版本? apply plugin: ‘java’ apply plugin: ‘eclipse’ ext { target = “1.5” } def jreContainer = ‘org.eclipse.jdt.launching.JRE_CONTAINER’ if (target == ‘1.4’ || target == ‘1.5’) { jreContainer += ‘/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-‘ + target } else if (target == ‘1.6’ || target == ‘1.7’) { jreContainer += ‘/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-‘ + target } eclipse […]

Gradle Build对于任务应用程序失败:processReleaseResources

apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion “22.0.1” defaultConfig { applicationId “com.nusecond.karun.suredeal” minSdkVersion 18 targetSdkVersion 23 versionCode 1 versionName “1.0” } signingConfigs { release { storeFile file(“suredealreleasekey.keystore”) storePassword “suredeal” keyAlias “SuredealReleaseKey” keyPassword “suredeal” } } buildTypes { release { signingConfig signingConfigs.release } } packagingOptions { exclude ‘META-INF/ASL2.0’ exclude ‘META-INF/LICENSE’ exclude ‘META-INF/license.txt’ exclude ‘META-INF/NOTICE’ exclude […]

使用junitPlatform时设置系统属性

在使用Gradle执行JUnit 5测试时,我无法找到如何设置系统属性。 标准test任务可以配置如下: test { systemProperty ‘org.slf4j.simpleLogger.defaultLogLevel’, ‘warn’ } 但是, junitPlatform任务似乎没有这样的选项。

使用Eclipse在Gradle中选择正确的JRE版本

我正在使用Gradle和Eclipse插件为我的项目生成项目文件,但我无法让它在.classpath放置正确的JRE版本。 我可以添加一个JRE容器,但我无法弄清楚如何删除默认容器 – 并且由于这个项目是在开发人员之间共享的,他们可能在Eclipse中设置了不同的默认值,我想手动控制它。 我认为这应该有效的方式是这样的: apply plugin: ‘java’ apply plugin: ‘eclipse’ sourceCompatibility = 1.6 由于targetCompatibility与sourceCompatibility相同,我希望这个设置转到Eclipse设置,找到一个与源版本匹配的JRE(是的,我的机器上有一个JRE安装和单独的JDK安装)然后去用它。 相反,它选择了默认值,在我的机器上恰好是Java 7。 我尝试在Eclipse配置中添加一些内容: eclipse { jdt { sourceCompatibility = 1.6 // tried with and without this } classpath { // tried various ways to remove the old entry, among them: file.beforeMerged { p -> p.entries.clear() } // and then I […]

如何在Java代码中访问gradle参数

我有一些java的经验,我是gradle的新手,我加入了一个项目,我必须修改gradle文件。 这是我的build.gradle文件 apply plugin: ‘java’ apply plugin: ‘idea’ sourceCompatibility = 1.5 version = ‘1.0’ dependencies { testCompile ‘org.testng:testng:6.9.10’, ‘org.seleniumhq.selenium:selenium-java:2.53.0’ } test { useTestNG() testLogging.showStandardStreams = true } 然后我使用mac终端./build test的以下命令运行我的测试套件 我想传递一个名为environment的参数。根据这个参数的值,我需要配置我的url并为该环境运行测试。 像./build test environment=dev或./build test environment=qa 在我的java代码中,我会做这样的事情 if(env == ‘dev’) { url = “my dev url”; user = “my dev user name” } else if(env == […]