從您的所有依賴項創建一個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