java - gradle - 将源 jar 文件附加到依赖项
问题描述
我有一个项目,它既具有 Maven 依赖关系,又依赖于存储在我们公司的 ivy 存储库中的公司内部 jar 文件。它是通过 ivy ant 任务发布的。我们称这个文件为 myco.jar。有一个名为 myco-sources.jar 的源文件,它与 myco.jar 位于同一位置。
当我通过 Eclipse 使用 gradle 构建时,maven 依赖项会自动下载源 jar 文件并将其附加到生成的 .classpath 文件中的主 jar 中。但是对于 myco.jar,它不会自动将 myco-sources.jar 附加到它。相反,myco-sources.jar 被下载,就好像它是一个单独的依赖项一样。所以即使源代码在技术上是类路径的一部分,我仍然无法在调试时单步执行源代码!
这是我的依赖项的片段:
dependencies {
implementation "com.myco:modname:${versionNo}"
implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${jacksonVersion}"
...
}
我如何“告诉” gradle 源文件不是单独的依赖项,而是 myco.jar 文件的源文件?
这是用于发布 myco.jar 和 myco-sources.jar 文件的 ivy.xml 文件的样子:
<publications>
<artifact name="myco" type="jar" ext="jar"/>
<artifact name="myco" e:classifier="sources" type="source" ext="jar"/>
<dependencies>
<dependency ... />
...
</dependencies>
这是 CI 运行以发布到我们的工件存储库的 ant 任务:
<target name="publish-task" depends="xxx" description="xxx">
<ivy:resolve file="ivy.xml"/>
<ivy:publish pubrevision="${version}" status="integration" resolver="xxx" overwrite="true">
<artifacts pattern="${path}/[artifact]-[revision](-[classifier]).[ext]"/>
</ivy:publish>
<delete file="ivy-${version}.xml"/>
</target>
解决方案
推荐阅读
- java - 如何使初始登陆页面不是spring security的登录表单?
- c# - WhenAnyObservable 抛出消息“索引表达式仅支持常量。”
- reactjs - React 事件处理程序性能问题
- unity3d - 统一着色器。获取屏幕空间四边形采样
- vb.net - 带有保存对话框的datagridview数据导出到vb net中的excel
- python - Python错误:(fields.E304)字段的反向访问器与另一个字段的反向访问器冲突
- python - 如何比较数据框中的每个元素
- objective-c - 如何重命名sqlite中的列名在目标c中不起作用
- linux - 进程调度:内核如何更新当前运行进程的need_resched标志?
- javascript - 我无法安装 nodemon 而不会出现错误