Eclipse 通过UI将Sources.jar存档部署到Artifactory

Eclipse 通过UI将Sources.jar存档部署到Artifactory,eclipse,gradle,artifactory,Eclipse,Gradle,Artifactory,我们正在使用Maven Central Repository中不存在的第三方库,我们不想将此归档作为工件部署到Artifactory。我们正试图通过ArtifactoryUI实现这一点,我们成功地部署了archive.jar和archive-sources.jar。当我们通过Gradle将此依赖项添加到build.Gradle脚本时,就会出现问题。Archive.jar是从我们的存储库中提取的,但Archive-sources.jar不是提取的。我们正在使用Eclipse进行开发,您可以通过屏幕

我们正在使用Maven Central Repository中不存在的第三方库,我们不想将此归档作为工件部署到Artifactory。我们正试图通过ArtifactoryUI实现这一点,我们成功地部署了archive.jar和archive-sources.jar。当我们通过Gradle将此依赖项添加到build.Gradle脚本时,就会出现问题。Archive.jar是从我们的存储库中提取的,但Archive-sources.jar不是提取的。我们正在使用Eclipse进行开发,您可以通过屏幕截图看到问题

我们尝试了几件事情,包括在ArtifactoryUI中定义分类器、使用ArtifactoryPOM编辑器编辑pom、手动发布pom文件,但都没有成功。不管我们做什么,我们都找不到这个档案的来源。任何形式的帮助都会节省大量的时间和精力。谢谢

Artifactory UI的屏幕截图:


我们已经解决了这个问题,但有点复杂。应用解决方案有许多步骤:

对于jain sdp归档,以下是步骤:

1-使用分类器“sources”部署jain sdp sources工件,如屏幕截图所示

2-手动上载jain-sdp.pom文件,包括“sourceDirectory”标记:

4-将步骤3中创建的文件包括到存档中的以下路径中:

META-INF/maven/javax.sdp/jain-sdp/pom.properties META-INF/maven/javax.sdp/jain-sdp/pom.xml

请注意,这些文件应该添加到jain-sdp.jar,而不是jain-sdp-sources.jar

5-通过UI将jain-sdp.jar上传到Artifactory

我认为这些步骤应该手动完成。我想不出别的办法来解决这个问题。应手动将SourceDirectory包括到pom文件和存档中。

将源文件添加到jar中,遵守与类文件内容相同的目录结构

这意味着您不需要管理另一个工件,也不需要更新pom.xml

执行此添加的最简单步骤是在CLI上:更改到源目录并“更新”jar。使用此特定的当前工作目录执行此操作,将保留正确的相对文件名

例如,我有目录结构:

~/project/src/com/mycompany
~/project/target
并在~/project/target中构建了一个名为existing.jar的jar

$ cd ~/project/src; jar uvf ../target/existing.jar com

$ jar tvf ~/project/target/existing.jar
应在同一树中显示类文件和源文件

  ...
  6923 Sun Sep 18 23:19:36 PDT 2016 org/spacehq/reddit/util/http/ResponseType.class
  4676 Sun Sep 18 22:30:38 PDT 2016 org/spacehq/reddit/util/http/ResponseType.groovy
  ...
IntelliJ IDEA在jar中检测这些源文件,并在打开相关类文件时显示它们。我想其他功能齐全的IDE也会


当然,您应该能够通过Maven以某种方式实现自动化,以消除人为步骤,但这是一次性的好方法。

源jar在Artifactory中是什么样子的?你能粘贴树(或简单)浏览器的屏幕截图吗?你在Artifactory请求日志中检查过源jar的gradle请求吗?@JBaruch我已经添加了屏幕截图。如果您需要,我可以提供更多文件。@drorb我们在artifactory的request.log中看不到任何源请求。奇怪的是我们有两个这样的库。我们昨天做的那个从今天开始下载源代码。但是另一个库仍然不能工作。对于这种奇怪的行为,我们没有任何合乎逻辑的解释。我们在.pom文件中进行了定义,并在归档文件的META-INF中手动添加了pom.xml和属性。其中一个JAR开始以这种方式工作,但另一个没有。Gradle是否尝试下载源文件?您可以使用
gradle--info--refresh dependencies eclipse
获取更多信息并尝试重新下载所有依赖项。
~/project/src/com/mycompany
~/project/target
$ cd ~/project/src; jar uvf ../target/existing.jar com

$ jar tvf ~/project/target/existing.jar
  ...
  6923 Sun Sep 18 23:19:36 PDT 2016 org/spacehq/reddit/util/http/ResponseType.class
  4676 Sun Sep 18 22:30:38 PDT 2016 org/spacehq/reddit/util/http/ResponseType.groovy
  ...