All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aQute.maven.dto.DependencyDTO Maven / Gradle / Ivy

There is a newer version: 7.1.0
Show newest version
package aQute.maven.dto;

import aQute.bnd.util.dto.DTO;
import aQute.bnd.version.MavenVersion;

/**
 * The <dependency> element contains information about a
 * dependency of the project.
 */
public class DependencyDTO extends DTO {

	/**
	 * The project group that produced the dependency, e.g.
	 * org.apache.maven.
	 */
	public String		groupId;

	/**
	 * The unique id for an artifact produced by the project group, e.g.
	 * maven-artifact.
	 */
	public String		artifactId;

	/**
	 * The version of the dependency, e.g. 3.2.1. In Maven 2, this
	 * can also be specified as a range of versions.
	 */
	public MavenVersion	version;

	/**
	 * The type of dependency. While it usually represents the extension on the
	 * filename of the dependency, that is not always the case. A type can be
	 * mapped to a different extension and a classifier. The type often
	 * corresponds to the packaging used, though this is also not always the
	 * case. Some examples are jar, war,
	 * ejb-client and test-jar: see
	 * default artifact
	 * handlers for a list. New types can be defined by plugins that set
	 * extensions to true, so this is not a complete
	 * list.
	 */
	public String		type	= "jar";

	/**
	 * The classifier of the dependency. It is appended to the filename after
	 * the version. This allows:
	 * 
    *
  • refering to attached artifact, for example sources and * javadoc: see * default artifact * handlers for a list,
  • *
  • distinguishing two artifacts that belong to the same POM but were * built differently. For example, jdk14 and jdk15 * .
  • *
*/ public String classifier; /** * The scope of the dependency - compile, runtime, * test, system, and provided. Used * to calculate the various classpaths used for compilation, testing, and so * on. It also assists in determining which artifacts to include in a * distribution of this project. For more information, see * the dependency mechanism. */ public enum Scope { compile, runtime, test, system, provided; } public Scope scope; /** * FOR SYSTEM SCOPE ONLY. Note that use of this property is * discouraged and may be replaced in later versions. This specifies * the path on the filesystem for this dependency. Requires an absolute path * for the value, not relative. Use a property that gives the machine * specific absolute path, e.g. ${java.home}. */ public String systemPath; /** * Lists a set of artifacts that should be excluded from this dependency's * artifact list when it comes to calculating transitive dependencies. */ public ExclusionDTO[] exclusions; /** * Indicates the dependency is optional for use of this library. While the * version of the dependency will be taken into account for dependency * calculation if the library is used elsewhere, it will not be passed on * transitively. Note: While the type of this field is String * for technical reasons, the semantic type is actually Boolean * . Default value is false. */ public String optional; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy