Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
来自Ant Ivy build的gwt 2.3 gwt-servlet-deps.jar_Gwt_Ant_Maven_Ivy_Bean Validation - Fatal编程技术网

来自Ant Ivy build的gwt 2.3 gwt-servlet-deps.jar

来自Ant Ivy build的gwt 2.3 gwt-servlet-deps.jar,gwt,ant,maven,ivy,bean-validation,Gwt,Ant,Maven,Ivy,Bean Validation,我正在尝试获得一个简单的GWT2.3项目,该项目在DevMode中使用一个构建。我在2.3之前的GWT项目中使用过Ivy(特别是GWT 2.0.x),并且以下依赖项(在我的Ivy模块xml文件中)在过去也适用于我:(我已经删除了Ivy配置的特定名称,并在下面显示为“…” …我甚至认为我有这个想法是非常糟糕的(我似乎永远是常春藤和梅文世界的新手),但是,唉,我仍然犯同样的错误 显然,Java-to-Javascript编译器希望获得源代码,而不仅仅是字节码jar,但我不知道如何告诉Ivy去获取它们

我正在尝试获得一个简单的GWT2.3项目,该项目在DevMode中使用一个构建。我在2.3之前的GWT项目中使用过Ivy(特别是GWT 2.0.x),并且以下依赖项(在我的Ivy模块xml文件中)在过去也适用于我:(我已经删除了Ivy配置的特定名称,并在下面显示为“…”

…我甚至认为我有这个想法是非常糟糕的(我似乎永远是常春藤和梅文世界的新手),但是,唉,我仍然犯同样的错误

显然,Java-to-Javascript编译器希望获得源代码,而不仅仅是字节码jar,但我不知道如何告诉Ivy去获取它们。我觉得我很接近,因为我发现了一个Ant任务,它将两个验证jar复制到lib中(字节码和源代码),但是我需要一些帮助来连接常春藤世界的点


如何告诉Ivy获取源jar?

如果存储库是Ivy存储库(工件的Ivy.xml文件),这个答案可能会有帮助:

您需要指定验证api的配置,其中包括源代码

<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="compile->sources"/>

其中compile是您的本地配置,sources是带有源代码的jar的配置

用于验证的ivy.xml api必须如下所示(我不知道它在您的存储库中是什么样子):


这将告诉ivy有两个JAR可用于验证api。一个普通的(编译)和一个特殊的(带源代码)。您必须指定要检索的配置。


<?xml version="1.0" encoding="UTF-8"?> 
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd" 
xmlns:m="http://ant.apache.org/ivy/maven"> 

<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA"> 
<artifact name="validation-api"/> 
<artifact name="validation-api" m:classifier="sources"/> 
</dependency> 


多亏了菲利佩·索萨

你能重现菲利佩的结果吗?我尝试了一下,但得到了一个错误:
不可能通过ivy检索:java.lang.RuntimeException:检索模块javax.validation的多个工件时出现问题#validation api;1.0.0.GA被检索到同一个文件!更新检索模式以修复此错误。
我不确定在本文中“检索模式”是什么意思。我想你给了我所需要的支持。经过一些阅读和实验,我发现我需要修改驱动ivy的Ant构建文件中
ivy:retrieve
元素的
pattern
属性上的模式。特别是,我需要在结尾添加括号分类器位:
有趣。我在常春藤模块文件中没有看到
出版物
元素。
visibility=“public”
是您的解决方案的基本元素吗?在阅读了publications标签并注意到它表示用于描述此模块发布的工件后,我感到困惑:我不是validation api Ivy模块的维护者。您是否建议他们必须这样做?如果您的存储库包含ivy工件,那么ivy.xml应该包含这样的信息。但如果它是一个maven存储库,那么另一个答案可能是最好的方法;)
<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="..."/>
<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="compile->sources"/>
<configurations>
    <conf name="compile" visibility="public"/>
    <conf name="source" visibility="public"/>
</configurations>
<publications>
   <artifact name="validation-api" type="jar" conf="compile" ext="jar"/>
   <artifact name="validation-api-src" type="jar" conf="source" ext="jar"/>
</publications>
<?xml version="1.0" encoding="UTF-8"?> 
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd" 
xmlns:m="http://ant.apache.org/ivy/maven"> 

<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA"> 
<artifact name="validation-api"/> 
<artifact name="validation-api" m:classifier="sources"/> 
</dependency>