无法使用 Gradle 4.3.1 找到方法 compileOnly
Could not find method compileOnly with Gradle 4.3.1
在 Liferay Developer Studio 3.1.2 中,我创建了一个 "New > Liferay Workspace Project"。
在里面,我创建了一个"New > Liferay Module Project"。
外观如下:
问题:模块项目没有Gradle右键菜单。
当从命令行 运行 Gradle 时,我得到:
$ gradle --version
------------------------------------------------------------
Gradle 4.3.1
------------------------------------------------------------
Build time: 2017-11-08 08:59:45 UTC
Revision: e4f4804807ef7c2829da51877861ff06e07e006d
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)
OS: Linux 4.4.0-101-generic amd64
$ gradle build
Starting a Gradle Daemon (subsequent builds will be faster)
FAILURE: Build failed with an exception.
* Where:
Build file '/home/nico/training-workspace/training/modules/doc-media-fragment/build.gradle' line: 2
* What went wrong:
A problem occurred evaluating root project 'doc-media-fragment'.
> Could not find method compileOnly() for arguments [{group=org.osgi, name=org.osgi.core, version=6.0.0}] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
我做错了什么?
如何解决问题?
Liferay工作区根目录下的build.gradle
是空的,下面是Liferay模块根目录下的build.gradle
:
dependencies {
compileOnly group: "org.osgi", name: "org.osgi.core", version: "6.0.0"
compileOnly group: "org.osgi", name: "org.osgi.service.component.annotations", version: "1.3.0"
}
创建 settings.gradle 并添加以下内容。
buildscript {
dependencies {
classpath group: "com.liferay", name: "com.liferay.gradle.plugins.workspace", version: "1.5.0"
classpath group: "net.saliman", name: "gradle-properties-plugin", version: "1.4.6"
classpath group: "com.liferay", name: "com.liferay.gradle.plugins", version: "latest.release"
}
repositories {
maven {
url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public"
}
}
}
apply plugin: "net.saliman.properties"
apply plugin: "com.liferay.workspace"
settings.gradle 通常包含最小的 liferay gradle 插件来执行构建和部署 liferay 模块。我已经在回答中粘贴了这个。还要在 liferay 工作区根目录中授予 gradlew 权限。 chmod 777 training/gradlew
您可以通过导航到 node_modules/react-native-maps/lib/android/build.gradle 并更改这些行来解决此问题
compileOnly "com.facebook.react:react-native:+"
implementation "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
implementation "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
implementation "com.google.maps.android:android-maps-utils:$androidMapsUtilsVersion"
至
provided "com.facebook.react:react-native:+"
compile "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
compile "com.google.maps.android:android-maps-utils:$androidMapsUtilsVersion"
并查看项目是否构建。
在 Liferay Developer Studio 3.1.2 中,我创建了一个 "New > Liferay Workspace Project"。
在里面,我创建了一个"New > Liferay Module Project"。
外观如下:
问题:模块项目没有Gradle右键菜单。
当从命令行 运行 Gradle 时,我得到:
$ gradle --version
------------------------------------------------------------
Gradle 4.3.1
------------------------------------------------------------
Build time: 2017-11-08 08:59:45 UTC
Revision: e4f4804807ef7c2829da51877861ff06e07e006d
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)
OS: Linux 4.4.0-101-generic amd64
$ gradle build
Starting a Gradle Daemon (subsequent builds will be faster)
FAILURE: Build failed with an exception.
* Where:
Build file '/home/nico/training-workspace/training/modules/doc-media-fragment/build.gradle' line: 2
* What went wrong:
A problem occurred evaluating root project 'doc-media-fragment'.
> Could not find method compileOnly() for arguments [{group=org.osgi, name=org.osgi.core, version=6.0.0}] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
我做错了什么?
如何解决问题?
Liferay工作区根目录下的build.gradle
是空的,下面是Liferay模块根目录下的build.gradle
:
dependencies {
compileOnly group: "org.osgi", name: "org.osgi.core", version: "6.0.0"
compileOnly group: "org.osgi", name: "org.osgi.service.component.annotations", version: "1.3.0"
}
创建 settings.gradle 并添加以下内容。
buildscript { dependencies { classpath group: "com.liferay", name: "com.liferay.gradle.plugins.workspace", version: "1.5.0" classpath group: "net.saliman", name: "gradle-properties-plugin", version: "1.4.6" classpath group: "com.liferay", name: "com.liferay.gradle.plugins", version: "latest.release" } repositories { maven { url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public" } } } apply plugin: "net.saliman.properties" apply plugin: "com.liferay.workspace"
settings.gradle 通常包含最小的 liferay gradle 插件来执行构建和部署 liferay 模块。我已经在回答中粘贴了这个。还要在 liferay 工作区根目录中授予 gradlew 权限。 chmod 777 training/gradlew
您可以通过导航到 node_modules/react-native-maps/lib/android/build.gradle 并更改这些行来解决此问题
compileOnly "com.facebook.react:react-native:+"
implementation "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
implementation "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
implementation "com.google.maps.android:android-maps-utils:$androidMapsUtilsVersion"
至
provided "com.facebook.react:react-native:+"
compile "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
compile "com.google.maps.android:android-maps-utils:$androidMapsUtilsVersion"
并查看项目是否构建。