我正在开发一个web应用程序,使用JPA、Hibernate和Ivy进行依赖关系管理。
从maven repo向hibernate添加依赖项很简单,但现在我需要修改hibernate源代码,重新构建它,并添加我自己的fork作为依赖项。
问题是hibernate使用gradle。我设法构建了它(gradlew-clean-build),现在我在每个hibernate子项目中都有了所有的jar(hibernate实体管理器、hibernate核心等)。
我的项目现在依赖于我工作区中的其他项目,但这些项目使用ivy,因此我可以毫不费力地将它们作为依赖项添加(使用工作区中解析功能)。现在我不知道如何导入hibernate。。。
(我甚至不知道如何管理hibernate fork……在我分叉的另一个项目中,我只是简单地配置了ivy(也是分叉项目使用ivy)来使用分支,这样我肯定会解决我的fork而不是原始项目,但hibernate使用gradle…)。。。所以我不能使用分支)
aProject/iiv.xml
<info
organisation="it.example"
module="aProject"
branch="myFork"
status="integration">
</info>
myProject/iiv.xml
<dependency org="it.example" name="aProject" branch="myFork" rev="latest.integration" conf="runtime->default"/>
有人能给我一个解决方案吗?(或者给我指正确的路?)
我遵循了Casey的建议(谢谢Casey),修改了gradle脚本以发布到我的repo。(在本地回购中,因为我在尝试在本地网络上发布时遇到错误,但这是另一个问题)
以下是我所做的:内置.gradle:
uploadArchives {
repositories.mavenDeployer {
name = 'localDeployer'
configuration = configurations.deployerJars
pom.project pomConfig
repository(url: "file://C:/Users/<myUserName>/.m2/local/")
}
}
(我无法使用${user.home}这样的属性,如果有人知道如何做,应该温和地编辑它)
在ivysettings.xml 中
<resolvers>
<filesystem name="local-maven-2" m2compatible="true"
local="true">
<artifact pattern="${user.home}/.m2/local/[organisation]/[module]/[revision]/[module]-[revision].[ext]" />
<ivy pattern="${user.home}/.m2/local/[organisation]/[module]/[revision]/[module]-[revision].pom" />
</filesystem>
</resolvers>
剩下的很简单,您只需要编辑hibernate(或您的分叉库)版本,将其声明为自定义版本(例如4.2.3->4.2.3-lelmarir),并在ivy依赖中使用它