Java Gradle在eclipse项目中找不到服务器运行时
我有一个EclipseJavaEE项目,我正试图转换成gradle项目。 我的项目中的代码使用WebSphereLiberty服务器运行时中的jar文件 我已经将服务器运行时添加到类路径中,编辑器可以识别它,并且不会抛出任何错误。当我尝试用gradle构建项目时,我得到100多个错误,说它在服务器运行时中找不到任何类 如何告诉gradle在构建阶段使用服务器运行时 格雷德尔先生 格雷德尔酒店Java Gradle在eclipse项目中找不到服务器运行时,java,jakarta-ee,gradle,Java,Jakarta Ee,Gradle,我有一个EclipseJavaEE项目,我正试图转换成gradle项目。 我的项目中的代码使用WebSphereLiberty服务器运行时中的jar文件 我已经将服务器运行时添加到类路径中,编辑器可以识别它,并且不会抛出任何错误。当我尝试用gradle构建项目时,我得到100多个错误,说它在服务器运行时中找不到任何类 如何告诉gradle在构建阶段使用服务器运行时 格雷德尔先生 格雷德尔酒店 服务器代码位于src>main>java当使用Gradle开发java EE应用程序时,实践是使用jav
服务器代码位于src>main>java当使用Gradle开发java EE应用程序时,实践是使用javaee api作为提供的编译(如果是war)或编译(我认为Gradle 2.13及更高版本) 下面是一个例子
providedCompile'javax:javaeeapi:7.0'当使用Gradle开发javaee应用程序时,实践是使用JavaEEAPI作为providedCompile(如果是war)或compileOnly(我认为Gradle 2.13及更高版本) 下面是一个例子
providedCompile'javax:javaeeapi:7.0'您有两个选项可以针对liberty运行时进行编译 在maven central中找到所需的软件包,并将其添加为
providedCompile
依赖项。
您将从Maven central获取API,而不是直接从安装的Liberty运行时获取API。这是首选,因为它允许您在任何地方编译代码,而无需安装liberty运行时,这意味着您的构建类路径不依赖于您在liberty运行时中安装的功能
例如
您通常会在javax.something
组中找到标准化的JavaEEAPI。如果您需要liberty api,它们位于com.ibm.websphere.appserver.api
组下
将本地liberty运行时中的JAR作为providedCompile
依赖项包括在内。
这里我们告诉Gradle liberty运行时的安装位置,并要求它在构建类路径中包含运行时的API JAR
例如
请注意,在这种情况下,可用的API将取决于您安装的功能
这种方法要求您在运行Gradle时,通过设置属性
liberty.root
,告诉Gradle liberty运行时的安装位置。您有几个选项可以根据liberty运行时进行编译
在maven central中找到所需的软件包,并将其添加为providedCompile
依赖项。
您将从Maven central获取API,而不是直接从安装的Liberty运行时获取API。这是首选,因为它允许您在任何地方编译代码,而无需安装liberty运行时,这意味着您的构建类路径不依赖于您在liberty运行时中安装的功能
例如
您通常会在javax.something
组中找到标准化的JavaEEAPI。如果您需要liberty api,它们位于com.ibm.websphere.appserver.api
组下
将本地liberty运行时中的JAR作为providedCompile
依赖项包括在内。
这里我们告诉Gradle liberty运行时的安装位置,并要求它在构建类路径中包含运行时的API JAR
例如
请注意,在这种情况下,可用的API将取决于您安装的功能
这种方法要求您在运行Gradle时通过设置属性
liberty.root
来告诉Gradle liberty运行时的安装位置。我最终在本地找到了jar文件,并从CLI工具中添加了所有文件。一切似乎都在运行和编译!谢谢,我最终在本地找到了jar文件,并从CLI工具中添加了它们。一切似乎都在运行和编译!非常感谢。
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'
}
rootProject.name = 'ApplicationName'
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
}
dependencies {
providedCompile fileTree(dir: "${liberty.root}/dev/api/spec")
}