依靠使用常春藤的gradle项目

时间:2013-07-18 13:03:49

标签: java hibernate ant gradle ivy

我正在开发一个Web应用程序,使用JPA,Hibernate和Ivy进行依赖管理。

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

问题是hibernate使用gradle。我设法构建它(gradlew clean build),现在我在每个hibernate子项目中都有所有的jar(hibernate-entitymanager,hibernate-core等)。

我的项目现在依赖于我工作区中的其他项目,但这些项目使用常春藤,因此我可以将它们作为依赖项添加而没有任何问题(使用工作区功能中的解析)。现在我无法弄清楚如何导入hibernate ...

(我甚至不确定如何管理一个hibernate fork ...在另一个项目我已经分叉我只是配置常春藤(也是分叉项目使用常春藤)来使用分支,这样我就是一定要解决我的fork而不是原来的项目,但是hibernate使用gradle ...所以我不能使用分支)

在进行一个项目/的ivy.xml

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

myProject的/的ivy.xml

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

有人能建议我解决方案吗? (或者指出正确的方法?)

1 个答案:

答案 0 :(得分:0)

我已经按照Casey的建议(谢谢Casey)并修改gradle脚本以发布到我的仓库。 (在本地回购中,因为我在尝试在本地网络上发布时遇到错误,但这是另一个问题)

这就是我所做的: 在build.gradle中:

    uploadArchives {
        repositories.mavenDeployer {
            name = 'localDeployer'
            configuration = configurations.deployerJars
            pom.project pomConfig
            repository(url: "file://C:/Users/<myUserName>/.m2/local/")
        }
    }

(我无法使用像$ {user.home}这样的属性,如果有人知道该怎么做应该轻轻编辑它)

in 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 - &gt; 4.2.3-lelmarir)并在常春藤依赖中使用它