我正在使用IntelliJ进行JavaEE应用程序开发。人工制品包括****。gar(Coherence应用程序),大约*****。ear中的5个(EJB应用程序和Web应用程序)。
在我的理解中,ant被用来构建应用程序jar,war,ear等。但是我不打算使用ant来构建或重建我的应用程序,因为IntelliJ会以自己的方式做到这一点。
我现在在想什么?在构建或重建JavaEE工件时,我试图使用ant创建MANIFEST.MF文件并将其放入我的应用程序src / META-INF /中。由于IntelliJ提供了一种执行一些预处理或后处理ant任务以与IntelliJ生成过程一起进行的方法。
我试图找到一些示例蚂蚁构建代码,例如:Internet上的build.xml。不幸的是,他们都在谈论创建一个jar / ear / war或其他包含MANIFEST.MF的东西。
我的问题是:有没有办法仅由ant创建一个MANIFEST.MF,如果是,请共享该build.xml!
非常感谢!
从朋友@Santosh获得建议后,他评论了我的话题。我知道它现在工作正常。
XML文件示例为:
<?xml version="1.0"?>
<project name="OzsscJPACoherence" basedir=".">
<property name="projectName" value="OzsscJPACoherence" />
<property name="libsSrc" value="libs"/>
<property name="srcDir" value="../../src"/>
<property name="artDir" value="../../../out/artifacts"/>
<property name="distDir" value="${artDir}/OzsscJPACoherence_jar"/>
<property name="build" value="build"/>
<property name="classes" value="build/classes"/>
<property name="jar" value="build/jar"/>
<property name="libs" value="build/libs"/>
<property name="version" value="2.5"/>
<tstamp>
<format property="TODAY" pattern="yyMMdd-HHmmss" locale="en,AU" />
</tstamp>
<path id="classpath">
<fileset dir="${libsSrc}" includes="*.jar"/>
</path>
<target name="jpacoh">
<mkdir dir="${distDir}/META-INF" />
<manifest file="${distDir}/META-INF/MANIFEST.MF">
<attribute name="Manifest-Version" value="1.0"/>
<attribute name="Extension-List" value="coherence active-cache"/>
<attribute name="coherence-Extension-Name" value="coherence"/>
<attribute name="active-cache-Extension-Name" value="active-cache"/>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Specification-Title" value="${projectName}"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Specification-Vendor" value="StorageWay Australia"/>
<attribute name="Implementation-Title" value="${projectName}"/>
<attribute name="Implementation-Version" value="${version} ${TODAY}"/>
<attribute name="Implementation-Vendor" value="StorageWay Australia"/>
</manifest>
<jar manifest="${distDir}/META-INF/MANIFEST.MF" jarfile="${distDir}/OzsscJPACoherence.jar"/>
</target>
</project>
并将ant任务添加到相关模块作为预处理任务,重建工件。 MANIFEST.MF已正确创建。
希望该线程可以在相同情况下对任何其他人有所帮助。
谢谢你们的帮助!
最佳答案
<target name="dist" depends="compile">
<mkdir dir="${dist}/lib" />
<manifest file="${build}/META-INF/MANIFEST.MF">
<attribute name="Class-Path" value="MyGame.jar" />
<attribute name="Main-Class" value="game.Game"/>
</manifest>
<jar manifest="${build}/META-INF/MANIFEST.MF" jarfile="${dist}/lib/MyGame.jar" basedir="${build}" />
</target>