Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle在eclipse项目中找不到服务器运行时_Java_Jakarta Ee_Gradle - Fatal编程技术网

Java Gradle在eclipse项目中找不到服务器运行时

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

我有一个EclipseJavaEE项目,我正试图转换成gradle项目。 我的项目中的代码使用WebSphereLiberty服务器运行时中的jar文件

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

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

格雷德尔先生

格雷德尔酒店


服务器代码位于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")
}