Java ServiceBuilder不编译依赖于IvyJAR的代码
我有一个基本的程序,其中包含一个简单的实体,用于服务生成器,没有用于web服务调用的属性。我在本地依赖于Java ServiceBuilder不编译依赖于IvyJAR的代码,java,ant,liferay,ivy,Java,Ant,Liferay,Ivy,我有一个基本的程序,其中包含一个简单的实体,用于服务生成器,没有用于web服务调用的属性。我在本地依赖于javax.ws.rs-api-2.0.1.jar中包含的javax.ws.rs库 在IDE中,代码不会显示任何错误。我可以在project explorer窗口中看到常春藤依赖项。但是,当我调用buildservices命令时,它无法使用外部jar中的类编译代码 依赖应用程序中的JAR时是否遗漏了一步?这不应该自动链接吗 蚂蚁输出: [javac] Compiling 4 source
javax.ws.rs-api-2.0.1.jar
中包含的javax.ws.rs
库
在IDE中,代码不会显示任何错误。我可以在project explorer窗口中看到常春藤依赖项。但是,当我调用buildservices命令时,它无法使用外部jar中的类编译代码
依赖应用程序中的JAR时是否遗漏了一步?这不应该自动链接吗
蚂蚁输出:
[javac] Compiling 4 source files to C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\portlets\myApp-portal-portlet\docroot\WEB-INF\service-classes
[javac] ----------
[javac] 1. ERROR in C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\portlets\myApp-portal-portlet\docroot\WEB-INF\service\com\example\myApp\portal\service\ExternalApiLocalService.java (at line 69)
[javac] public javax.ws.rs.client.WebTarget myAppRestApi();
[javac] ^^^^^^^^^^^^^^^^^^
[javac] javax.ws.rs.client cannot be resolved to a type
[javac] ----------
[javac] 2. ERROR in C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\portlets\myApp-portal-portlet\docroot\WEB-INF\service\com\example\myApp\portal\service\ExternalApiLocalService.java (at line 71)
[javac] public javax.ws.rs.client.WebTarget myAppRegisterService();
[javac] ^^^^^^^^^^^^^^^^^^
[javac] javax.ws.rs.client cannot be resolved to a type
[javac] ----------
[javac] 3. ERROR in C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\portlets\myApp-portal-portlet\docroot\WEB-INF\service\com\example\myApp\portal\service\ExternalApiLocalService.java (at line 73)
[javac] public javax.ws.rs.client.WebTarget myAppValidPaService();
[javac] ^^^^^^^^^^^^^^^^^^
[javac] javax.ws.rs.client cannot be resolved to a type
[javac] ----------
[javac] ----------
[javac] 4. ERROR in C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\portlets\myApp-portal-portlet\docroot\WEB-INF\service\com\example\myApp\portal\service\ExternalApiLocalServiceClp.java (at line 127)
[javac] public javax.ws.rs.client.WebTarget myAppRestApi() {
[javac] ^^^^^^^^^^^^^^^^^^
[javac] javax.ws.rs.client cannot be resolved to a type
[javac] ----------
[javac] 5. ERROR in C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\portlets\myApp-portal-portlet\docroot\WEB-INF\service\com\example\myApp\portal\service\ExternalApiLocalServiceClp.java (at line 146)
[javac] return (javax.ws.rs.client.WebTarget)ClpSerializer.translateOutput(returnObj);
[javac] ^^^^^^^^^^^^^^^^^^
[javac] javax.ws.rs.client cannot be resolved to a type
[javac] ----------
[javac] 6. ERROR in C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\portlets\myApp-portal-portlet\docroot\WEB-INF\service\com\example\myApp\portal\service\ExternalApiLocalServiceClp.java (at line 150)
[javac] public javax.ws.rs.client.WebTarget myAppRegisterService() {
[javac] ^^^^^^^^^^^^^^^^^^
...........................etc
BUILD FAILED
C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\build-common-plugin.xml:262: The following error occurred while executing this line:
C:\liferay\liferay-developer-studio\liferay-plugins-sdk-6.2\build-common.xml:634: Compile failed; see the compiler error output for details.
ivy.xml:
<?xml version="1.0"?>
<ivy-module
version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info module="portlet_liferay_faces_alloy_tmpl" organisation="com.liferay" />
<dependencies defaultconf="default">
...
<dependency name="jersey-common" org="org.glassfish.jersey.core" rev="2.12" transitive="true" />
<dependency name="jersey-client" org="org.glassfish.jersey.core" rev="2.12" transitive="true" />
<dependency name="html-json" org="org.glassfish.jersey.media" rev="2.12" transitive="true"/>
</dependencies>
</ivy-module>
...
亲切问候,,
thenaglecode.您几乎自己回答了这个问题,但这并不十分明显:当servicebuilder运行时,它执行一些java代码,这些代码也需要与项目的类路径一起运行:servicebuilder将编译/检查您的代码以生成适当的接口等 因此,您还需要将项目的依赖项注入servicebuilder流程。当您从IDE运行servicebuilder时,它最有可能运行Ant任务,这将从webapp获取所有明显的(到Ant的)依赖项(例如,它在
WEB-INF/lib
和appserver的全局类路径中找到的内容)。Ant进程不会扫描任何ivy、maven或其他构建工具的依赖项声明——不幸的是,您必须添加此依赖项两次