当前位置: 首页 > 知识库问答 >
问题:

解决来自构建中的另一个项目的 ivy 依赖项.xml

周浩博
2023-03-14

免责声明:我是使用Ant Ivy的新手

我有以下eclipse配置

项目A取决于项目B和项目C

项目B依赖于项目C

每个项目都有自己的ivy.xml文件。

ProjectA有一个生成。xml文件,如下所示:

(...)

<ivy:resolve file="../ProjectC/ivy.xml" />
<ivy:cachepath pathid="ivy.deps.default" conf="default" />
<ivy:cachefileset setid="ivy.deps.default.fileset" conf="default"/>


<ivy:resolve file="../ProjectB/ivy.xml" />
<ivy:cachepath pathid="ivy.deps.default" conf="default" />
<ivy:cachefileset setid="ivy.deps.default.fileset" conf="default"/>


<ivy:resolve file="ivy.xml" />
<ivy:cachepath pathid="ivy.deps.default" conf="default" />
<ivy:cachefileset setid="ivy.deps.default.fileset" conf="default"/>

<path id="classpath">
    <fileset dir="${webroot}/WEB-INF/lib" erroronmissingdir="no">
        <include name="*.jar"/>
    </fileset>
    <fileset dir="${libraries}" erroronmissingdir="no">
        <include name="*.jar"/>
    </fileset>
    <path refid="ivy.deps.default"/>
</path>

    (...)

<javac destdir="c:/abc" includeantruntime="yes" classpathref="ivy.deps.default">
                        <src path="../ProjectC/src"/>
                        <classpath refid="classpath"/>
                    </javac>

 (... Compile ProjectB ...)
 (... Compile ProjectA ...)

因此,运行这个build.xml会导致错误,说ProjectC无法编译,因为它缺少一个*。应该由ivy:resolve命令解析的jar文件。

我的问题是:

    < li >如何创建一个build.xml,它可以自动从子项目中检索依赖项并编译所有子项目?

共有1个答案

辛星宇
2023-03-14

看起来每个项目都有一个 ivy 文件,但没有每个项目的构建文件。正如Mark在上面的评论中所说,每个项目都应该单独构建。

例如:

  • 将ProjectB构建到驱动器上类似“SharedLibrary”的目录中。(漂亮的小JAR文件)
    • 记下ProjectB的IVY文件。它设置组织、工件名称、版本等

    那应该可以让你参加比赛了!

    专业提示:不要使用“SharedLibrary”目录,而是考虑使用像ArtiFactory这样的东西来管理工件并从那里拉取。

 类似资料:
  • 我有一个Apache Ivy(版本2.4.0)和Netbean IDE(8.0.2)的设置。我无法解决成熟的maven项目的依赖关系(例如:org.glassfish.jersey)。Apache Ivy成功地解决了更特定模块的依赖关系,如(org.glassfish.jersey.core)。 非工作示例: 工作实例: 常春藤。xml ivysettings。xml build.xml(只是IV

  • 我有三个项目:A、B、C和应该编译它们的ant中的build.xml。 c依赖于B,B依赖于A 到目前为止,我所有的依赖项都在eclipse中,我有一个build.xmlant: 现在,我有常春藤.xml文件 - 例如: 现在,当我按顺序将A、B、C发布到存储库(我使用sonatype nexus存储库)时,一切都很好,因为存储库也用于解析,所以过程是:1。解决A的依赖关系-没有这样的2。将当前工

  • **新到分级 我有一个需求,需要使用一个现有的spring boot项目(它安装在本地maven存储库中)作为另一个项目(spring boot gradle项目)中的依赖项。 使用mavenLocal我能够成功地运行和构建gradle项目,但是当我试图使用其他项目中存在的任何类时,我就无法导入它。 我如何使用这个分级项目中的maven项目?

  • 我面临着以下问题。我有两个Gradle项目(ProjectA和ProjectB)在同一个层次结构上,没有任何根项目。由于ProjectA依赖于ProjectB,我尝试将其建模如下: ProjectA的settings.gradle: ProjectA的build.gradle: 然而,当我在ProjectA上执行gradle build时,我得到了以下错误: 我必须在ProjectB中定义某种默认

  • 我遇到了一件奇怪的事。我用常春藤检索标签把罐子放在某处。如果我编写如下代码: 它工作正常。但是如果我添加如下内容: 它会抛出“无法解析依赖关系”。有什么建议吗?谢了。

  • 我有两个Maven项目A和B,其中项目B嵌套在项目A中。 我正在尝试导入DependencyClass。java(项目A)进入MyTest。java(project B),并且能够调用DependencyClass中的方法。来自MyTest的java。JAVA但当我试图打包项目B时,它在编译阶段失败了: 我找到了一些答案,比如这个和这个,我做了以下工作: > 在项目B的pom中向项目A添加了依赖项