代码之家  ›  专栏  ›  技术社区  ›  corsiKa

我怎样才能让Ivy将我的依赖项绑定到自己的jar中?

  •  0
  • corsiKa  · 技术社区  · 6 年前

    在我的项目中,我只有一个依赖项(现在还早!)-冬眠在我的常春藤配置中,我有以下内容:

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency org="org.hibernate" name="hibernate-core" rev="5.4.0.Final" conf="sources->sources"/>
        <dependency org="org.hibernate" name="hibernate-core" rev="5.4.0.Final" conf="binaries->default"/>
    </dependencies>
    

    以我的身材。xml,我有这个:

    <ivy:retrieve conf="sources" pattern="war/WEB-INF/lib/[conf]/[artifact](-[classifier]).[ext]"/>
    <ivy:retrieve conf="binaries" pattern="war/WEB-INF/lib/[artifact](-[classifier]).[ext]"/>       
    

    现在,在我的lib文件夹中,我有一个名为sources的文件夹,正好有一个jar, hibernate-core-sources.jar -太好了!!但在lib文件夹中,我没有一个罐子——我有18个罐子,每个罐子对应Hibernate的依赖项(以及祖父母依赖项,等等)

    我真正想看到的是 hibernate-core.jar hibernate-core-deps.jar .

    这样的事情可能吗?如果不是的话,有可能吗 休眠核心。罐子 my-app-deps.jar ? 如果这是不可能的,它能把所有的东西都打包成一个 我的应用程序deps。罐子 ?

    我对常春藤不是很有经验,所以你的答案越明确越好!

    1 回复  |  直到 6 年前
        1
  •  0
  •   cantSleepNow    6 年前

    这是可能的,但你必须意识到,当你构建类路径时,你可能会错过一些类,并且 NoClassDefFoundError 在运行时抛出。 解决办法是打电话给常春藤 resolve 曾经 transitive 开始 false ,第二次设置为 true (这是默认设置)。每一次之后你都得打电话 retrieve 但是检索模式不同,所以不可传递( hibernate-core.jar )到 lib 文件夹,并可转换为临时文件夹,从中可以创建 hibernate-core-deps.jar .