从您的所有依赖项创建一个jar,所有内容都在${package.path}/lib/*/.jar
。
您可以在运行maven之前或作为maven构建的一部分使用ant任务来创建此jar。
要合并罐子,您可以使用Ant Jar Task(请参阅合并存档)。从那里:
<jar destfile="build/main/checksites.jar">
<fileset dir="build/main/classes"/>
<restrict>
<name name="**/*.class"/>
<archives>
<zips>
<fileset dir="lib/main" includes="**/*.jar"/>
</zips>
</archives>
</restrict>
</jar>
这将创建一个jar文件,它将lib/main中所有jar文件中的所有类嵌入。
然后你可以使用系统作用域,这个作用域在maven中是正常的。注意:如果你在maven(通过ant)中创建jar,那么你应该在目标中创建jar,以便正确清理它。
从Maven的使用Ant构建文件,你可以使用maven antrun plugin,类似于:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property name="local.project.artifact.name" value="${project.build.finalName}" />
<property name="local.distribution.artifact.name" value="${local.project.artifact.name}-distribution" />
<property name="local.distribution.artifact.file" value="${project.build.directory}/${local.distribution.artifact.name}.zip" />
<ant antfile="build-deploy.xml" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
这运行在封装阶段Ant构建文件build-deploy.xml
。您的系统所需的修改仅作为读者的练习:-)。
你有没有想过在Ant脚本中使用[Ivy](http://ant.apache.org/ivy/)发布到Artifactory? – McDowell