Generate, analyze, merge, capture, compare export specifications and libraries.

Usage
  generate option... classpath...
  analyze  option... libraries...
  merge    option... libraries...
  capture  option... libraries...
  compare  option... baseline1 baseline2
  convert  option... files...

  A merge or capture command with -compareto is effectively a compare command.

Parameters
  command                The command to perform:
                           generate Generate export specification from classes.
                           analyze  Analyze libraries.
                           merge    Merge libraries.
                           capture  Capture library baseline.
                           compare  Compare baselines.
                           convert  Convert messages to an export specification.
  classpath              Directories or jars to scan for classes and annotations
                         from which to generate an export specification.
  libraries              Libraries to analyze, merge, or capture, provided as
                         extension jar paths; library paths; extension ids or
                         names optionally prefixed by "extension" and enclosed
                         in square brackets; library ids or names optionally
                         prefixed by "library" and enclosed in square brackets;
                         and/or "installation". -middlewarehome option is
                         required to resolve ids or "installation".
  baseline               The path to a previously captured baseline or zipped
                         baseline. If not found, ".zip" is added or removed and
                         the search retried.
  files                  Used API rule messages, one per line, to convert, or
                         Used API rule Audit XML reports to convert or compare
                         (-left and -right specify comparison).

Options (generate, analyzer, merge, capture, compare commmands)
  -approvals path*       [compare] Approved changes to baseline. Each line is a
                         message from an errors, warnings, or notes output file
                         (see -output); a comment line beginning with '#'; or an
                         empty line. When the path is a directory, any files
                         found in the directory ending with ".lis" are read.
  -bootclasspath*        Paths from which to load JDK classes: traditional class
                         path for JDK 8 (rt.jar, etc.) or JDK root directory for
                         JDK 9 and up. If omitted, load classes of running JDK.
  -compareto path        [merge or capture command] Enables capture of the
                         processed libraries and comparison of the new baseline
                         with the baseline at the specified path.
  -consumers name*       Consumers for the export specification output file. If
                         omitted, none are written, and "all" is assumed.
  -dependencies path*    Dependency jars, directories, and/or libraries used
                         by classes or libraries processed by the command. An
                         extension jar is assumed to be present for its
                         libraries, a plain jar for its classes.
  -directory path        Directory for files in -output. -d is a synonym.
  -domain path           Export specification file defining the domain for the
                         command. Special values "fmw" and "all" respectively
                         specify the official FMW domain and the universal
                         domain. If omitted, the universal domain is used.
  -failonclasspatherror  [generate] Fail if class path entry error.
  -help                  Print this text and exit.
  -middlewarehome path   The root directory of the middleware installation.
                         Required to resolve "installation" or library and
                         extension names and ids. -mwh is a synonym.
  -librarydescription de Value for description attribute of library output
                         file type.
  -libraryid id          Value for id attribute of library output file type.
  -libraryname name      Value for name attribute of library output file type.
  -official              Convenience option for official merge and capture
                         commands. Defaults -domain to "fmw", -owner to "all",
                         export specification to fmw-documented-exports.xml,
                         remediation comments to fmw-remediation-comments.xml.
                         Enables recently used migrated members and defaults it
                         to fmw-migrated-members.lis
  -output types*         Types of output files to enable or (when prefixed by
                         "no") disable. If omitted, the default types for the
                         command are enabled. If the first listed type is
                         prefixed with "no", types are added and subtracted
                         from the default types for the command; otherwise
                         types are added and subtracted from the empty set. The
                         default path is the type-specific default name in the
                         output directory. For each output type, an option name
                         composed from the type name and "file", e.g.
                         "-exportsfile", will override the default path. Output
                         types are the following:
                           baseline    [merge,capture] Baseline to create.
                                       Default name is baseline.xsig.zip.
                           comments    Remediation comments from scope. Default
                                       name is lib-comments.xml.
                           concealed   Concealed signatures in scope. Default
                                       name is concealed-signatures.lis.
                           default     Default types for command. Convenience
                                       to alter default by add or subtract.
                           differences [compare] Unofficial simple difference
                                       format. Default name is differences.lis.
                           errors      [compare] Unacceptable API changes found
                                       by compare. Default name is
                                       baseline-errors.lis.
                           errorsused  [compare] Unacceptable API changes found
                                       by compare with uses by FA. Default name
                                       is baseline-errors-used.lis.
                           exported    Exported signatures in scope. Default
                                       name is exported-signatures.lis.
                           exports     Export specification of scope. Default
                                       name is lib-exports.lis.
                           issues      Issues detected during execution.
                                       Default name is exports.log.
                           library     Library merged from processed libraries.
                                       Default name is lib-exports.library.
                           libraries   Summary of processed libraries. Default
                                       name is libraries.lis
                           matched     [compare] API changes that matched an
                                       approval (see -approvals). Default name
                                       is matched-approvals.lis.
                           notes       [compare] Benign API changes found by
                                       compare. Default name is
                                       baseline-notes.lis.
                           packages    Summary of processed packages. Default
                                       name is packages.csv.
                           problems    Problem types in exported signatures.
                                       Default name is problem-types.lis.
                           recent*     Recent use report files, for "*" use
                                       "exported", "concealed", "commented",
                                       "uncommented", "migrated", or "missing".
                                       See also -uses, -recentuses, and
                                       -missing. Respective default names are:
                                         recent-used-exported.lis,
                                         recent-used-concealed.lis,
                                         recent-used-concealed-commented.lis,
                                         recent-used-concealed-uncommented.lis
                                         recent-used-migrated.lis
                                         recent-used-missing.lis
                           restricted  Restricted signatures in scope. Default
                                       name is restricted-signatures.lis.
                           traces      Diagnostic and performance execution
                                       traces. Default name is traces.log.
                           types       Summary of processed types. Default
                                       name is types.csv.
                           unmatched   [compare] Approvals that did not match
                                       any API change. Default name is
                                       unmatched-approvals.lis.
                           warnings    [compare] Potentially unacceptable API
                                       changes found by compare. Default name is
                                       baseline-warnings.lis.
  -owner                 Owner name for the export specification output file.
  -package name*         One or more package names to limit the set of classes
                         processed. See -scope.
  -recentuses            Enable recent uses output files (-output recent*).
  -scope path*           Files of listed types used to restrict the scope
                         of classes processed; merges with -domain and -package:
                           ".xml"      export spec (only <domain> elements used)
                           ".pkg"      package names, one per line
                           ".jar"      packages inferred from class files
                           ".zip"      packages inferred from class files
                           directory   packages inferred from class files
                           ".library"  packages inferred from class files
                           ".lis"      paths to any of listed file types
                         Domain (.xml) files are merged before packages.
  -source string         Source identification (e.g., ADE label) for the export
                         specification and baseline output files. Required if
                         export specification or baseline output files enabled.
  -traces                Enable traces output file (-output traces).
  -used path             List of Used API rule messages supplying client uses.
  -uses                  Enable recent uses output files (-output recent*).
  -[no]validate          Whether to validate libraries and export specifications
                         against schemas. If omitted, -novalidate is assumed.
  @file                  Include options and parameters from file.

Options (Convert}
  -access                [-toexport] Access to assign to used API elements. If
                         omitted, exported is assumed.
  -apiformat format      The format for API names, SOURCE, BINARY, or HYBRID.
                         If omitted, the format is SOURCE.
  -delimiter string      [-tocsv] String to separate CSV file values. If
                         omitted, the separator is a comma.
  -excludeempty name*    [-tocsv] Exclude issues with no value for a named
                         property (see -properties). If omitted, no issues are
                         excluded by a property with no value.
  -[no]header            [-tocsv] Prepend property name header line to CSV
                         file. If omitted, no header line is written.
  -left path             File providing left file for comparison, or directory
                         providing left root directory for comparison.
  -properties name*      [-tocsv] Property names to include (in any order):
                         WORKSPACE, PROJECT, FILE, LINE, COLUMN, RULE,
                         VARIATION, SUPPRESSED, MESSAGE, ACCESS, PATH, API,
                         LIBRARY, and DIFFERENCE (MESSAGE and API values may
                         contain commas). If omitted, WORKSPACE, PROJECT, FILE,
                         LINE, RULE, SUPPRESSED, and MESSAGE are included. If
                         -left and  -right are specified, DIFFERENCE is also
                         included. API, ACCESS, and LIBRARY are specific to the
                         Concealed API Hybrid, Used API, and Used API Discrete rules.
  -right path            File providing right file for comparison, or directory
                         providing right root directory for comparison.
  -removeavr             Remove ADE view root from paths (/ade/[A-Za-z0-9_-]+/)
  -rules id*             Rule ids of issues to extract from Audit report. If
                         omitted, all rules are extracted.
  -source string         [-tosignature] Write source identification (e.g., ADE
                         label) to the first line of the signature file.
  -tocsv path            CSV file to create of issues or (with -compare)
                         issues differences between left and right.
  -toexport path         Export specification to create exporting or
                         restricting all uses.
  -tosignature path      Signature list to create of all used signatures.

* Separate multiple values by commas, OR specify option multiple times.

Notes
  Schema validation, when enabled, is done on all export specifications and
  manifest libraries. It is not yet applied to extension libraries.

  Defining an alias along the lines of the following may be convenient:
    alias xport="java -jar $MW_HOME/jdeveloper/modules/oracle.javatools/javatools-exports.jar"

Examples
  If the current directory is the middleware home and test.library has an id of
  "oracle.wls.test", these commands will equivalently analyze test.library:
    analyze -mwh . -d result wlserver/plugins/jdeveloper/libraries/test.library
    analyze -mwh . -d result [oracle.wls.test]

  The following command analyzes the installation rooted at the current
  directory, with the useful side effect that libraries.lis in the output
  directory will list all libraries discovered in the installation:
    analyze -mwh . -d temp installation

  The following command builds an official export spec and related files for
  middleware home of an FMWTOOLS label:
    merge installation -capture -mwh $MW_HOME -official \
    -source "$(grep -o -m1 'FMWTOOLS_.*' $ADE_VIEW_ROOT/ade_info.cs)" -d result

  The following command captures a baseline from the middleware home of an
  FMWTOOLS label and compares it to a previously captured baseline.xsig file in
  the current directory:
    capture installation -compareto baseline.xsig -mwh $MW_HOME -official \
    -source "$(grep -o -m1 'FMWTOOLS_.*' $ADE_VIEW_ROOT/ade_info.cs)" -d result
