Jar

Description

説明

Jars a set of files.

ファイルの集合をJarにします。

The basedir attribute is the reference directory from where to jar.

basedir属性は、jarを行うディレクトリです。

Note that file permissions will not be stored in the resulting jarfile.

ファイルのパーミッションは生成したjarファイルには保存されないことに注意してください。

It is possible to refine the set of files that are being jarred. This can be done with the includes, includesfile, excludes, excludesfile and defaultexcludes attributes. With the includes or includesfile attribute you specify the files you want to have included by using patterns. The exclude or excludesfile attribute is used to specify the files you want to have excluded. This is also done with patterns. And finally with the defaultexcludes attribute, you can specify whether you want to use default exclusions or not. See the section on directory based tasks, on how the inclusion/exclusion of files works, and how to write patterns.

jarにするファイルの集合を絞り込むことが可能です。 これには、includesincludesfileexcludesexcludesfiledefaultexcludes属性を使用します。 includesincludesfile属性によって、 パターンを使用して包括したいファイルを指定します。 excludeexcludesfile属性では、 除外したいファイルを指定します。これもまたパターンを使用します。 最後に、defaultexcludes属性によって、 デフォルト除外集合を使うかどうかを指定できます。 ファイルの包括/除外の処理方法や、パターンを記述する方法については、 ディレクトリベースのタスク の節を参照してください。

This task forms an implicit FileSet and supports all attributes of <fileset> (dir becomes basedir) as well as the nested <include>, <exclude> and <patternset> elements.

このタスクは暗黙のファイルセットを作成して、 ネストした<include><exclude><patternset>要素のように、 <fileset>のすべての属性 (dirbasedirになります) をサポートします。

You can also use nested file sets for more flexibility, and specify multiple ones to merge together different trees of files into one JAR. The extended fileset and groupfileset attributes from the zip task are also available in the jar task. See the Zip task for more details and examples.

さらに柔軟にネストしたファイルセットを使うこともできます。 一つのJARのファイルの異なるツリーを一緒にするために、 複数のファイルセットを指定できます。 zipタスクの拡張されたfilesetやgroupfileset属性が jarタスクでも使用可能です。 詳細と例はZipタスクを参照してください。

If the manifest is omitted, a simple one will be supplied by Ant.

manifestが省略された場合、Antによって簡単なmanifestが提供されます。

The update parameter controls what happens if the JAR file already exists. When set to yes, the JAR file is updated with the files specified. When set to no (the default) the JAR file is overwritten. An example use of this is provided in the Zip task documentation.

JARファイルが既に存在した場合、 updateパラメータが適用されます。 yesがセットされた場合、JARファイルは 指定されたファイルで更新されます。 no (デフォルト)が指定された場合、 JARファイルは上書きされます。 Zipタスクのドキュメントに これを使用する1つの例があります。

(The Jar task is a shortcut for specifying the manifest file of a JAR file. The same thing can be accomplished by using the fullpath attribute of a zipfileset in a Zip task. The one difference is that if the manifest attribute is not specified, the Jar task will include an empty one for you.)

(JarタスクはJARファイルのマニフェストファイルを指定するショートカットです。 同じことが、Zipタスクのzipfilesetのfullpath属性を使って可能です。 1つの違いは、manifest属性が指定されない場合、 Jarタスクは空のマニフェストを含めることです。)

Manifests are processed by the Jar task according to the Jar file specification. Note in particular that this may result in manifest lines greater than 72 bytes being wrapped and continued on the next line.

マニフェストは、Jarファイル仕様に従って処理されます。 仕様に従うことで、 マニフェストの行が72バイトより大きいときは、次の行に続ける必要がある、 ということに特に注意してください。

Parameters

パラメータ

Attribute Description Required
destfile the JAR file to create. Yes
basedir the directory from which to jar the files. No
compress Not only store data but also compress them, defaults to true No
encoding The character encoding to use for filenames inside the archive. Defaults to UTF8. It is not recommended to change this value as the created archive will most likely be unreadable for Java otherwise. No
filesonly Store only file entries, defaults to false No
includes comma- or space-separated list of patterns of files that must be included. All files are included when omitted. No
includesfile the name of a file. Each line of this file is taken to be an include pattern No
excludes comma- or space-separated list of patterns of files that must be excluded. No files (except default excludes) are excluded when omitted. No
excludesfile the name of a file. Each line of this file is taken to be an exclude pattern No
defaultexcludes indicates whether default excludes should be used or not ("yes"/"no"). Default excludes are used when omitted. No
manifest the manifest file to use. This can be either the location of a manifest, or the name of a jar added through a fileset. If its the name of an added jar, the task expects the manifest to be in the jar at META-INF/MANIFEST.MF No
update indicates whether to update or overwrite the destination file if it already exists. No
whenempty behavior when no files match. Valid values are "fail", "skip", and "create". Default is "skip". No
duplicate behavior when a duplicate file is found. Valid values are "add", "preserve", and "fail". The default value is "add". No
index whether to create an index list to speed up classloading. This is a JDK 1.3+ specific feature. Defaults to false. No
属性 説明 必須
destfile 作成するJARファイル Yes
basedir ファイルをJARにする基準ディレクトリ No
compress データを保存するだけでなく、圧縮します。デフォルトはtrue。 No
encoding アーカイブに含めるファイル名に使用する文字エンコーディング。 デフォルトはUTF8。 生成されたアーカイブがJava 以外で読めなくなる可能性があるので、 この値を変更することは推奨されません。 No
filesonly ファイルエントリのみを格納します。デフォルトはfalse。 No
includes カンマかスペースで区切られた、包括するファイルのパターンのリスト。 省略時にはすべてのファイルが含まれます。 No
includesfile ファイル名。 このファイルの各行が包括パターンとして解釈されます。 No
excludes カンマかスペースで区切られた、除外するファイルのパターンのリスト。 省略時には(デフォルト除外集合を除いて)除外されるファイルはありません。 No
excludesfile ファイル名。 このファイルの各行が除外パターンとして解釈されます。 No
defaultexcludes デフォルト除外集合を使うかどうかを指定します("yes"/"no")。 省略時はデフォルト除外集合が使用されます。 No
manifest 使用するマニフェストファイル。 マニフェストの場所か、ファイルセットで追加されるJARの名前を指定可能です。 JARの名前を指定する場合、 マニフェストはJARの中のMETA-INF/MANIFEST.MFにあることが期待されます。 No
update 出力ファイルが既に存在していた場合、 更新するか、上書きするかを指定します。 No
whenempty ファイルがマッチしない場合の動作。 有効な値は、"fail"、 "skip"、"create"。 デフォルトは"skip"です。 No
duplicate 同じファイルが見つかった場合の動作。 有効な値は"add"、"preserve"、"fail"。 デフォルトの値は"add"です。 No
index クラスロードを高速化するための index list を作成するかどうか。 これはJDK1.3以上の仕様です。デフォルトはfalse。 No

Nested elements

ネストした要素

metainf

The nested metainf element specifies a FileSet. All files included in this fileset will end up in the META-INF directory of the jar file. If this fileset includes a file named MANIFEST.MF, the file is ignored and you will get a warning.

ネストしたmetainf要素は FileSetを指定します。 このファイルセットに含まれるすべてのファイルは JARファイルのMETA-INFディレクトリに格納されます。 もしMANIFEST.MFという名前のファイルが含まれていた場合、 そのファイルは無視され、警告されます。

manifest

The manifest nested element allows the manifest for the Jar file to be provided inline in the build file rather than in an external file. This element is identical to the manifest task, but its file and mode attributes will be ignored.

manifestのネストした要素は、 外部ファイルではなく、 ビルドファイル中に、 JARファイルのマニフェストをインラインで提供できるようにします。 この要素は、 manifestタスクと同じですが、 fileとmode属性は無視されます。

If both an inline manifest and an external file are both specified, the manifests are merged.

インラインのmanifestと外部ファイルの両方が指定されていた場合、 マニフェストはマージされます。

When using inline manifests, the Jar task will check whether the build file is more recent that the Jar file when deciding whether to rebuild the Jar. This will not take into account property file changes which may affect the resulting Jar.

インラインのmanifestが使われてる場合、 Jarタスクは、Jarをリビルドするか決める際に、 ビルドファイルがJarファイルより最近のものであるかをチェックします。 プロパティファイルの変更も、生成するJarファイルに影響を与えることが ありますが、ここではそのチェックは含まれません。

Examples

  <jar destfile="${dist}/lib/app.jar" basedir="${build}/classes"/>

jars all files in the ${build}/classes directory into a file called app.jar in the ${dist}/lib directory.

${build}/classesディレクトリ内のすべてのファイルを、 ${dist}/libディレクトリのapp.jarファイルに Jarします。

  <jar destfile="${dist}/lib/app.jar"
       basedir="${build}/classes"
       excludes="**/Test.class"
  />

jars all files in the ${build}/classes directory into a file called app.jar in the ${dist}/lib directory. Files with the name Test.class are excluded.

${build}/classesディレクトリのすべてのファイルを、 ${dist}/libディレクトリのapp.jarファイルに Jarします。 Test.classという名前のファイルは除外されます。

  <jar destfile="${dist}/lib/app.jar"
       basedir="${build}/classes"
       includes="mypackage/test/**"
       excludes="**/Test.class"
  />

jars all files in the ${build}/classes directory into a file called app.jar in the ${dist}/lib directory. Only files under the directory mypackage/test are used, and files with the name Test.class are excluded.

${build}/classesディレクトリのすべてのファイルを、 ${dist}/libディレクトリのapp.jarファイルにJarします。 ただし、ディレクトリmypackage/testの下のファイルだけで、 また、Test.classという名前のファイルは除外されます。

  <jar destfile="${dist}/lib/app.jar">
    <fileset dir="${build}/classes"
             excludes="**/Test.class"
    />
    <fileset dir="${src}/resources"/>
  </jar>

jars all files in the ${build}/classes directory and also in the ${src}/resources directory together into a file called app.jar in the ${dist}/lib directory. Files with the name Test.class are excluded. If there are files such as ${build}/classes/mypackage/MyClass.class and ${src}/resources/mypackage/image.gif, they will appear in the same directory in the JAR (and thus be considered in the same package by Java).

${build}/classesディレクトリと${src}/resourcesディレクトリ 内のすべてのファイルを一緒に、 ${dist}/libディレクトリのapp.jarにJarします。 Test.classという名前のファイルは除外されます。 ${build}/classes/mypackage/MyClass.class${src}/resources/mypackage/image.gif といったファイルがあった場合、同じディレクトリにJarされるでしょう (このように、Javaの同じパッケージにあるようにできます)。

  <jar destfile="test.jar" basedir=".">
    <include name="build"/>
    <manifest>
      <attribute name="Built-By" value="${user.name}"/>
      <section name="common/class1.class">
        <attribute name="Sealed" value="false"/>
      </section>
    </manifest>
  </jar>

This is an example of an inline manifest specification. Note that the Built-By attribute will take the value of the Ant property ${user.name}. The manifest produced by the above would look like this:

これはインラインのmanifestを使った例です。 Built-By属性がAntのプロパティー${user.name}の値を使っていることに 注意していください。 上の例で作成されるマニフェストは次のようになるでしょう。

Manifest-Version: 1.0
Built-By: conor
Created-By: Apache Ant 1.5alpha

Name: common/class1.class
Sealed: false

Copyright © 2000-2002 Apache Software Foundation. All rights Reserved.

[訳注:これは風間一洋、宮本信二が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]