Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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 Ivy发布了两次相同的工件_Java_Javadoc_Ivy - Fatal编程技术网

Java Ivy发布了两次相同的工件

Java Ivy发布了两次相同的工件,java,javadoc,ivy,Java,Javadoc,Ivy,我有一个常春藤发布版本的问题。以下是我模块的ivy.xml中的内容: <publications> <artifact name="my-artifact" type="pom" ext="pom"/> <artifact name="my-artifact" type="jar" ext="jar"/> <artifact name="my-artifact" type="javadoc" ext="jar" m:clas

我有一个常春藤发布版本的问题。以下是我模块的ivy.xml中的内容:

<publications>
     <artifact name="my-artifact" type="pom" ext="pom"/>
     <artifact name="my-artifact" type="jar" ext="jar"/>
     <artifact name="my-artifact" type="javadoc" ext="jar" m:classifier="javadoc"/>
</publications>

我的目标是:

<target name="my.publish.target">
       <ivy:publish resolver="my-resolver" artifactspattern="${my.dir}/[artifact](-[classifier]).[ext]" pubrevision="${ivy.revision}" publishivy="false" overwrite="true"/>
</target>

当我使用Windows在本地机器上运行它并发布了3个工件时,它工作得很好:一个编译过的jar、一个pom和一个javadoc jar。当我在服务器(Linux机器,不确定是否重要)上运行它时,我得到了相同的3个工件,但是javadoc jar包含与编译jar相同的类,而不是实际的javadoc

我不明白这一点,因为我对常春藤很陌生。有人能帮我吗

多谢各位

编辑

我以为我提到过他们,但我想我忘了。以下是我的解决方案:

远程解析器(不工作)


本地解析器(工作)



看起来确实像是常春藤的问题。我的建议是首先验证文件是否由Ant正确创建。在发布JAR之前,您是否比较了这些文件?我注意到您的ivy发布任务设置了覆盖标志。这可能隐藏了一个问题。是的,这是我检查的第一件事。罐子是正确创建的。此外,在我的机器中,任务按预期工作。这就是为什么我不确定到底发生了什么。我的本地发布和远程发布之间唯一更改的是解析器,但这不应影响AFAIK的结果。覆盖标志之所以出现在这里,是因为它出现在我所遵循的示例中。我会尝试删除它,如果有任何变化,我会告诉你。谢谢你的帮助!啊,分解器。因此,平台之间存在差异。你能包括这些细节吗?解析程序实际上是执行与目标存储库集成的插件。我认为只需要解析程序就可以找到工件。我已经添加了它们。谢谢。所以您将发布到Maven repository manager,这实际上是一个管理实际文件存储的第三方系统。下一个问题是哪种产品?Sonatype Nexus?人工制品?它是如何配置的?同时,这里有一个Nexus的例子:看起来确实像一个常春藤问题。我的建议是首先验证文件是否由Ant正确创建。在发布JAR之前,您是否比较了这些文件?我注意到您的ivy发布任务设置了覆盖标志。这可能隐藏了一个问题。是的,这是我检查的第一件事。罐子是正确创建的。此外,在我的机器中,任务按预期工作。这就是为什么我不确定到底发生了什么。我的本地发布和远程发布之间唯一更改的是解析器,但这不应影响AFAIK的结果。覆盖标志之所以出现在这里,是因为它出现在我所遵循的示例中。我会尝试删除它,如果有任何变化,我会告诉你。谢谢你的帮助!啊,分解器。因此,平台之间存在差异。你能包括这些细节吗?解析程序实际上是执行与目标存储库集成的插件。我认为只需要解析程序就可以找到工件。我已经添加了它们。谢谢。所以您将发布到Maven repository manager,这实际上是一个管理实际文件存储的第三方系统。下一个问题是哪种产品?Sonatype Nexus?人工制品?它是如何配置的?同时,这里有一个Nexus示例:
<ibiblio name="remote-resolver" m2compatible="true" usepoms="true" root="url_of_the_repository" />
<filesystem name="local-repository" m2compatible="true" cache="local">
  <ivy pattern="${myRoot}/${myPattern}" />
  <artifact pattern="${myRoot}/[organisation]/[module]/[revision]/[module]-([classifier]-)[revision].[ext]"/>
 </filesystem>