Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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打印构建目标?_Java_Ant_Build_Build Process - Fatal编程技术网

如何用Java打印构建目标?

如何用Java打印构建目标?,java,ant,build,build-process,Java,Ant,Build,Build Process,假设我们有一个类PrintTarget,其中包含main 我们是否可以构建/编译,以使我们能够以某种方式在main中发送构建目标名称。当调用main时,它将打印构建目标名称 我不想在构建时使用目标名称。我们都知道怎么做。 我希望生成的JAR记住目标名称。 假设我们创建了jar printTarget.jar 并执行jar>java printTarget.jar 我希望此调用打印目标名称。听起来很奇怪 通常使用ant或maven构建。还是用埃克斯利普 但这超出了java代码的范围 因此,您可以在

假设我们有一个类PrintTarget,其中包含main

我们是否可以构建/编译,以使我们能够以某种方式在main中发送构建目标名称。当调用main时,它将打印构建目标名称

我不想在构建时使用目标名称。我们都知道怎么做。 我希望生成的JAR记住目标名称。 假设我们创建了jar printTarget.jar 并执行jar>java printTarget.jar 我希望此调用打印目标名称。

听起来很奇怪

通常使用ant或maven构建。还是用埃克斯利普 但这超出了java代码的范围

因此,您可以在ant或maven脚本中打印构建目标

在Ant中:

<target name="jar">
    <echo>Building target: ${target}</echo>

...
</target>
听起来很奇怪

通常使用ant或maven构建。还是用埃克斯利普 但这超出了java代码的范围

因此,您可以在ant或maven脚本中打印构建目标

在Ant中:

<target name="jar">
    <echo>Building target: ${target}</echo>

...
</target>

要将数据从构建时传递到运行时,您需要将数据写入存储在JAR中的文件中,例如

<jar destfile="printTarget.jar">
  <fileset dir="${classes.dir}" />
  <manifest>
    <attribute name="Main-Class" value="com.example.Main" />
  </manifest>
  <!-- This is just a way to create a zip entry from inline text in the build
       file without having to <echo> it to a real file on disk first -->
  <mappedresources>
    <mergemapper to="com/example/buildinfo.properties"/>
    <string encoding="ISO-8859-1"># this is a generated file, do not edit
      targetname=custom-build-1
    </string>
  </mappedresources>
</jar>

要将数据从构建时传递到运行时,您需要将数据写入存储在JAR中的文件中,例如

<jar destfile="printTarget.jar">
  <fileset dir="${classes.dir}" />
  <manifest>
    <attribute name="Main-Class" value="com.example.Main" />
  </manifest>
  <!-- This is just a way to create a zip entry from inline text in the build
       file without having to <echo> it to a real file on disk first -->
  <mappedresources>
    <mergemapper to="com/example/buildinfo.properties"/>
    <string encoding="ISO-8859-1"># this is a generated file, do not edit
      targetname=custom-build-1
    </string>
  </mappedresources>
</jar>


你的意思是建立目标吗?在这个术语下你理解什么。我了解jar目标、编译目标、清理目标和java文档目标。都包含在生成系统/skcript中。在运行类(例如java PrintTarget buildtarget1)时,是否要打印参数?您的意思是生成目标吗?在这个术语下你理解什么。我了解jar目标、编译目标、清理目标和java文档目标。都包含在一个构建系统/skcript中。这是运行类时要打印的参数吗?例如java PrintTarget buildtarget1?我知道我们使用ant构建它。我在寻找的是,程序是否能够以某种方式记住它是在哪个目标下构建的?你想在ant构建时在控制台上打印目标吗?不,不。构建完成后,当调用生成的JAR时,我想打印目标。目标是构建过程中的一个步骤。构建的最终结果是一个或多个jar文件。它们通常不会在构建数据过程中被调用。运行应用程序时将调用它们。你想打印出正在运行的jar文件名吗?这就是你的意思吗?看看我在main中打印jat文件名的更新。我知道我们是用ant构建的。我在寻找的是,程序是否能够以某种方式记住它是在哪个目标下构建的?你想在ant构建时在控制台上打印目标吗?不,不。构建完成后,当调用生成的JAR时,我想打印目标。目标是构建过程中的一个步骤。构建的最终结果是一个或多个jar文件。它们通常不会在构建数据过程中被调用。运行应用程序时将调用它们。你想打印出正在运行的jar文件名吗?这就是你的意思吗?看看我在main中打印jat文件名的更新。回答得好。谢谢你的提示。这就是我要找的。回答得好。谢谢你的提示。这就是我要找的。
Build target was custom-build-1