有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java依赖于使用ivy的gradle项目

我正在开发一个web应用程序,使用JPA、Hibernate和Ivy进行依赖关系管理

从maven repo将依赖项添加到hibernate很简单,但是现在我需要修改hibernate源代码,重新构建它,并添加我自己的fork作为依赖项

问题是hibernate使用gradle。我成功地构建了它(gradlew clean build),现在我在每个hibernate子项目(hibernate entitymanager、hibernate core等)中都有了所有的JAR

我的项目现在依赖于我工作区中的其他项目,但这些项目使用ivy,因此我可以毫无困难地将它们添加为依赖项(使用“在工作区中解析”功能)。现在我不知道如何导入hibernate

(我甚至不知道如何管理hibernate分叉…在我分叉的另一个项目中,我只是将ivy(也是分叉项目使用ivy)配置为使用分支,这样我肯定会解决我的分叉而不是原始项目,但hibernate使用gradle。。。所以我不能用树枝)

一个项目/常春藤。xml

<info
    organisation="it.example"
    module="aProject"
    branch="myFork"
    status="integration">
</info>

我的项目/常春藤。xml

<dependency org="it.example" name="aProject" branch="myFork" rev="latest.integration" conf="runtime->default"/>

有人能给我一个解决方案吗?(或者给我指出正确的方向?)


共 (1) 个答案

  1. # 1 楼答案

    我已经按照Casey的建议(谢谢Casey)修改了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依赖中使用它