Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 结合Ant和Maven项目_Java_Maven_Ant - Fatal编程技术网

Java 结合Ant和Maven项目

Java 结合Ant和Maven项目,java,maven,ant,Java,Maven,Ant,我在一个非常大的java项目中工作,该项目由许多较小的maven模块和一个使用ant维护的web模块组成。现在,我需要访问用maven模块编写的web模块项目。是否有可能以某种方式将maven模块添加到ant项目中 我曾尝试从maven模块生成jar文件,并简单地将它们添加到ant项目中,但我收到了错误ClassNotFoundException和NoClassDefFoundError您可以通过使用将maven依赖项与ApacheAnt集成。使用像Nexus这样的maven存储库管理器,Art

我在一个非常大的java项目中工作,该项目由许多较小的maven模块和一个使用ant维护的web模块组成。现在,我需要访问用maven模块编写的web模块项目。是否有可能以某种方式将maven模块添加到ant项目中


我曾尝试从maven模块生成jar文件,并简单地将它们添加到ant项目中,但我收到了错误
ClassNotFoundException
NoClassDefFoundError

您可以通过使用将maven依赖项与ApacheAnt集成。

使用像Nexus这样的maven存储库管理器,Artifactory或Archiva存储Maven项目构建的JAR

然后可以使用ANT插件将这些作为依赖项(Ivy也可以用于在Maven repo中存储JAR,但这是另一个问题)

例子 编译文件

任务用于解析依赖项并将它们放置在项目空间中
  • ivy任务清除本地ivy缓存
  • ivysettings.xml
    
    
    注:

    • ivy配置文件是可选的,本例演示了如何将和本地Maven存储库一起用作依赖项源
    ├── build.xml
    ├── ivysettings.xml
    └── target
        └── WEB-INF
            └── lib
                ├── log4j-1.2.17.jar
                ├── slf4j-api-1.7.5.jar
                └── slf4j-log4j12-1.7.5.jar
    
    <project name="demo" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
    
      <property name="build.dir" location="target"/>
    
      <available classname="org.apache.ivy.Main" property="ivy.installed"/>
    
      <target name="resolve" depends="install-ivy" description="Use ivy to resolve classpaths">
        <ivy:retrieve pattern="${build.dir}/WEB-INF/lib/[artifact]-[revision].[ext]">
          <dependency org="org.slf4j" name="slf4j-api" rev="1.7.5" conf="default"/>
          <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.5" conf="default"/>
        </ivy:retrieve>
      </target>
    
      <target name="install-ivy" unless="ivy.installed">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"/>
        <fail message="Ivy installed  run build again"/>
      </target>
    
      <target name="clean">
        <delete dir="${build.dir}"/>
      </target>
    
      <target name="clean-all" depends="clean">
        <ivy:cleancache/>
      </target>
    
    </project>
    
    <ivysettings>
      <settings defaultResolver="my-resolvers"/>
      <resolvers>
        <chain name="my-resolvers" returnFirst="true">
          <ibiblio name="central" m2compatible="true"/>
          <ibiblio name="myrepo" root="http://mavenrepo/path/to/repo" m2compatible="true"/>
        </chain>
      </resolvers>
    </ivysettings>