我正在使用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>

10-07 19:22
查看更多