我有一个由gradle创建的项目,它将一个工件发布到本地常春藤存储库。从历史上看,我们将gradle纯粹用于flatDir存储库,因为我们希望将所有内容都保留在本地。然而,我开始看到使用常春藤的好处,而不是到处复制生成的工件。
我可以轻松地将工件发布到ivy,但其他使用存储库拉入该工件的项目在其瞬态flatDir依赖项上失败。
我正在努力找出处理这些瞬态依赖的最佳方法。很明显,任何使用工件的人都需要它们,因为他们有工件使用的类。我应该将带有工件的瞬态依赖发布到ivy吗?最好的方法是什么?
我曾尝试(我认为这是一种黑客行为)将flatLib dir中的jar声明为工件:
group 'utils'
repositories {
flatDir {
dirs 'lib'
name 'librepo'
}
}
dependencies {
compile ":antlr:3.4"
// ...
}
artifacts {
project.repositories.librepo.dirs.each { dir ->
dir.eachFile {
if (it.isFile()) {
archives file(it)
}
}
}
}
但是,包含工件的项目失败,因为flatDir文件上载到与主工件相同的组(在本例中为“UTIL”),但在依赖项部分中没有定义组,因此ivy中的条目也是如此。xml没有组织价值,即。
<dependency org="" name="antlr" rev="3.4" conf="compile->default"/>
我想我错过了一些东西,任何帮助都将不胜感激如何混合平板和常春藤。
我是否应该将flatDir依赖项迁移到ivy以便正确解析,然后我可以将构建更改为仅使用它发布到的ivy存储库作为源?我真的想不出更好的方法,但如果我这样做,它将产生相当大的影响,因为每个依赖项都必须从主项目目录的lib dir转移到ivy,我真的只想使用ivy存储库来管理我们生成的工件,而不是第三方库。
为了完整起见,我找不到一个合适的解决方案,在本文的帮助下,我也将所有的lib/jar迁移到了ivy。然而,这个问题最终为我赢得了风滚草奖!
问题内容: 我正在开发两个相关的项目。其中一个是“助手”,另一个是“主”。我不断地更新“主要”,但是我有时也会更新“助手”。之后,我在gradle的maven插件中运行目标,并在本地maven存储库中获取jar。之后,我在“主要”项目中进行了gradle更新,并链接了更新的jar。 有两个问题。 1)如果仍然使用maven插件,那么如何将源代码也发布到本地Maven存储库中呢? 2)我可以在没有m
几天来,当根依赖来自我的本地存储库时,我试图让apache常春藤解决我在ivy.xml中声明的依赖关系,但失败了。我的公共存储库(maven)中的根依赖关系工作得很好,甚至在我编辑ivy.xml指向本地存储库中模块的依赖关系时也能工作。但是本地存储库的传递依赖解决方案将不起作用。我检查了缓存中一个本地模块的解析ivy.xml,依赖部分已经被清除了!有什么我必须做的吗? 这是我的ivysetting
像这样的问题有很多,但是似乎没有一个对我有效或者直接回答我的问题。 我正在使用Jhipster和MongoDB Atlas。Jhipster使用一个名为Mongobee的库,其中使用了一个适用于MongoDB的方法,但不适用于MongoDB Atlas。要启动,Mongobee似乎不再维护。 因此,我找到了某人的建议PR,他们将其发送给Mongobee进行审查,我接受了代码更改,将MongoBe分
问题内容: 我正在将Java项目从Ant迁移到Gradle。我认为最好的解决方案是使用Gradle的多项目支持,但是我找不到摆脱循环依赖的方法。 原始项目已设置为具有以下布局: 之间的关系,并且,是棘手的。将取决于或根据配置文件。同样,无论配置属性如何,都依赖和。并且永远不会在同一时间建造。 我认为一种快速的解决方案是在: 接下来,我想过要找到一种方法来使之更接近公正工作。这导致我想到了这一点:
问题内容: 对于Java库项目,要发布的工件非常简单,因为输出是单个jar文件。但是,我也有一个项目,其中包含以下内容: MyLib.jar armeabi / libStuff.so armeabi-v7a / libStuff.so mips / libStuff.so x86 / libStuff.so 我无法将所有这些.so文件设置为工件,因为它们都具有相同的名称。推荐的方法是什么?将所有
我和常春藤开始了新的生活。 我有一个本地Git Repo,我把罐子存放在那里。我使用Ant进行构建。 在蚂蚁中,我可以将哪个解析器与Git和常春藤一起使用。需要什么设置才能实现此目的。