gpt4 book ai didi

java - Gradle 在 Eclipse 项目中找不到服务器运行时

转载 作者:行者123 更新时间:2023-12-01 18:03:28 25 4
gpt4 key购买 nike

我有一个 Eclipse JavaEE 项目,我正在尝试将其转换为 gradle 项目。我的项目中的代码使用来自 WebSphere Liberty 服务器运行时的 jar 文件。

我已将服务器运行时添加到类路径中,编辑器可以识别它并且不会抛出任何错误。当我尝试使用 gradle 构建项目时,出现 100 多个错误,提示无法在服务器运行时中找到任何类。

如何告诉 gradle 在构建阶段使用服务器运行时?

build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = '1.7'
targetCompatibility = '1.7'

repositories {
jcenter()
mavenLocal()
}

dependencies {
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.company.jsend:JSend:1.0'
compile 'com.company.network:Network:1.0'
}

settings.gradle

rootProject.name = 'ApplicationName'

服务端代码位于src > main > java

最佳答案

您有几个针对 liberty 运行时进行编译的选项。

在mavencentral中找到你需要的包并将它们添加为providedCompile依赖项。

您将从 Maven 中心获取 API,而不是直接从安装的 Liberty 运行时获取 API。这是首选,因为它允许您在任何地方编译代码,而无需安装 liberty 运行时,并且这意味着您的构建类路径不依赖于您在 liberty 运行时中安装的功能。

例如

dependencies {
providedCompile 'javax:javaee-api:7.0' // All Java EE 7 APIs
providedCompile 'javax.ejb:javax.ejb-api:3.2' // Just the EJB 3.2 APIs
providedCompile 'com.ibm.websphere.appserver.api:com.ibm.websphere.appserver.api.security:1.2.13' // Liberty security APIs
}

您通常会在 javax.something 组中找到标准化的 Java EE API。如果您需要 liberty API,它们位于 com.ibm.websphere.appserver.api 组下。

包含来自本地 liberty 运行时的 jar 作为 providedCompile 依赖项。

在这里,我们告诉 Gradle 您的 liberty 运行时的安装位置,并要求它在构建类路径中包含运行时中的 API jar。

例如

dependencies {
providedCompile fileTree(dir: "${liberty.root}/dev/api/spec")
}

请注意,在这种情况下,可用的 API 将取决于您安装的功能。

此方法要求您在运行 Gradle 时通过设置属性 liberty.root 来告诉 Gradle 您的 liberty 运行时安装位置。

关于java - Gradle 在 Eclipse 项目中找不到服务器运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com