maven

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

plugin goals

? can be attached to a lifecycle phase

phase

A Goal Binds to a ?

version

A specific release of a project. Projects that have been released have a fixed version identifier that refers to a specific version of the project. Projects undergoing active development can use a special identifier that marks a version as a SNAPSHOT.

mvn archetype:generate --batch-mode \ -DarchetypeArtifactId=maven-archetype-webapp \ -DgroupId=uk.co.pookey.hibernate \ -DartifactId=hibernate

How do create a simple web application project in mvn in batch mode

mvn jetty:run

How do you start a jetty web app server as a mvn plugin:goal

goupId, artifactId, version, and packaging

These four elements become the key to locating and using one particular project in the vast space of other "Mavenized" projects

pluginId:goalId

When referring to a plugin goal, we frequently use the shorthand notation: ?:?

mvn dependency:analyze

what is the command in mvn to uncover the direct reference to dependencies

goals

A Maven Plugin is a collection of one or more ?

unit of work

A goal is a ? in Maven

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin>

Another way to configure Maven to skip unit tests is to add this configuration to your project's pom.xml. To do this, you would add a plugin element to your build configuration.

When Maven is executed against a project with submodules, Maven first loads the parent POM and locates all of the submodule POMs. Maven then puts all of these project POMs into something called the Maven Reactor which analyzes the dependencies between modules. The Reactor takes care of ordering components to ensure that interdependent modules are compiled and installed in the proper order.

Describe the way multi-module projects are built

Duplicated dependency declarations make it difficult to ensure consistent versions across a large project

Duplicated dependency declarations make it ?

zero or more

Each phase may have how many goals bound to it

mvn archetype:generate --batch-mode \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DgroupId=uk.co.pookey.hibernate \ -DartifactId=hibernate

How do create a simple jar project in mvn in batch mode

A multi-module project is defined by a parent POM referencing one or more submodules

How do we define a multi-module project in mvn

artifactId

How do we define a unique identifier under groupId that represents a single project

<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> </plugin>

How do you add a jetty plugin in mvn project

Fortunately, via bytecode analysis, the Maven Dependency plugin is able to assist you in uncovering direct references to dependencies. Using the updated POMs we previously optimized, let's look to see if any errors pop up:

How do you uncover direct references to dependencies in mvn

Made possible by the fact that the Maven repository stores more than just bytecode; it stores metadata about artifacts

How does Maven maintain transitive dependencies?

mvn dependency:resolve

If you need to find out what is on the classpath, you can use the Maven Dependency plugin to print out a list of dependecies

mvn dependency:tree

If you would like to know about the entire dependency tree of your project, you can run this goal.

mvn install -X

If you're truly adventurous or want to see the full dependency trail, including artifacts that were rejected due to conflicts and other reasons, run Maven with the debug flag.

address

Just like in any other coordinate system, a set of Maven coordinates is an ? for a specific point in "space"

groupId:artifactId:packaging:version

Maven coordinates are often written using a colon as a delimiter in the following format ?

public, private, or local

Maven repositories are

C:\Users\USERNAME\.m2\repository

Once Maven has downloaded an artifact from the remote Maven repository it never needs to download that artifact again as Maven will always look for the artifact in the local repository before looking elsewhere. On windows, the directory is this

mvn install assembly:assembly

Once assembly plugin is added, how do we invoke mvn

Optimizing a multimodule project's POM is best done in several passes as there are many areas to focus on

Optimizing a multimodule project's POM is best done in ?

If more than one project depends on a specific dependency, you can list the dependency in dependencyManagement. The parent POM can contain a version and a set of exclusions; all the child POM needs to do to reference this dependency is use the groupId +and +artifactId. Child projects can omit the version and exclusions if the dependency is listed in dependencyManagement.

Pull-up common dependencies to dependencyManagement

mvn help:describe -Dplugin=exec -Dfull

The Exec plugin allows you to execute Java classes and other scripts. It is not a core Maven plugin, but it is available from the Mojo project hosted by Codehaus. For a full description of the Exec plugin, run:

/<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>

The standard for a Maven repository is to store an artifact in this format

packaging

The type of project, defaulting to jar, describing the packaged output produced by a project. A project with packaging jar produces a JAR archive; a project with packaging war produces a web application.

Use ${project.version} and ${project.groupId} when referring to a sibling project. Sibling projects almost always share the same groupId, and they almost always share the same release version. Using ${project.version} will help you avoid the sibling version mismatch problem discussed previously.

Use built-in project version and groupId for sibling projects

On this site, you'll notice that some default reports are available. A unit test report communicates the success and failure of all unit tests in the project. Another report generates Javadoc for the project's API. Maven provides a full range of configurable reports, such as the Clover report that examines unit test coverage, the JXR report that generates cross-referenced HTML source code listings useful for code reviews, the PMD report that analyzes source code for various coding problems, and the JDepend report that analyzes the dependencies between packages in a codebase. You can customize site reports by configuring which reports are included in a build via the pom.xml file

What are the default reports produced by mvn site command

Maven Coordinates

What define a set of identifiers which can be used to uniquely identify a project, a dependency, or a plugin in a Maven POM

The parent project doesn't create a JAR or a WAR; instead, it is simply a POM that refers to other Maven projects and simply provides a Project Object Model (pom)

What does parent parent pom publishes?

The group, company, team, organization, project, or other group

What is groupId in mvn?

generate a new project using the default maven-archetype-quickstart archetype

What is the default behavior of archetype:create

<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency>

What is to be done to tell Maven that the jar is provided by the container and thus should not be included in the war.

A dependency in Maven isn't just a JAR file; it's a POM file that, in turn, may declare dependencies on other artifacts. These dependencies of dependencies are called transitive dependencies

What is transitive dependencies?

A repository is a collection of project artifacts stored in a directory structure that closely matches a project's Maven coordinates

What makes a Maven repository a Maven repository?

Archetype

What plugin creates a project with a file named pom.xml.

<plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin>

What plugin do we add if we want to install with all the dependencies

Not bundled. They are used only for compilation

When you create a JAR for a project, dependencies are bundled or not bundled with the generated artifact

...

When you use Maven to create a WAR or an EAR file, you can configure Maven to bundle dependencies with the generated artifact, and you can also configure it to exclude certain dependencies from the WAR file using the provided scope. The provided scope tells Maven that a dependency is needed for compilation, but should not be bundled with the output of a build. This scope comes in handy when you are developing a web application. You'll need to compile your code against the Servlet specification, but you don't want to include the Servlet API JAR in your web application's WEB-INF/lib directory.

Whenever there is duplication of some piece of information, there is usually a better way to solve. Refactor your dependencies and configurations

Whenever there is duplication of some piece of information, there is usually a ?

mvn install -Dmaven.test.skip=true

You may want to configure Maven to skip unit tests altogether. Maybe you have a very large system where the unit tests take minutes to complete and you don't want to wait for unit tests to complete before producing output. You might be working with a legacy system that has a series of failing unit tests, and instead of fixing the unit tests, you might just want to produce a JAR. Maven provides for the ability to skip unit tests using the skip parameter of the Surefire plugin

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> mvn test -Dmaven.test.failure.ignore=true

You will often find yourself developing on a system that has failing unit tests. If you are practicing Test-Driven Development (TDD), you might use test failure as a measure of how close your project is to completeness. If you have failing unit tests, and you would still like to produce build output, you are going to have to tell Maven to ignore build failures. When Maven encounters a build failure, its default behavior is to stop the current build. To continue building a project even when the Surefire plugin encounters failed test cases, you'll need to set the ? configuration property of the Surefire plugin to true.

Unfortunately, dependencyManagement doesn't apply to plugin dependencies,

does dependencyManagement apply to plugin dependencies,

mvn install

how do install a project

read http://maven.apache.org/plugins/maven-eclipse-plugin/reactor.html

how do we create multi module project from command line and make i ready to be imported in eclipse

project web site in the target/site directory. Load target/site/index.html

output of mvn site?

JAR

phase is going to create a ? file for a project with jar packaging

mvn help:effective-pom

project might have a relatively minimal pom.xml, the contents of your project's POM are interpolated with the contents of all parent POMs, user settings, and any active profiles. To see this "effective" POM, run which mvn command

A good rule of thumb in Maven is to always declare explicit dependencies for classes referenced in your code

regarding dependencies, should you depend on the transitive dependencies in maven?

site

this lifecycle is concerned solely with processing site content under the src/site directories and generating reports

lifecycle phase

to validate the basic integrity of the project and ends with a phase that involves deploying a project to production

This shell contains some reports under "Project Reports" in the lefthand navigation menu, and it also contains information about the project, the dependencies, and developers associated with it under "Project Information." The simple project's web site is mostly empty, since the POM contains very little information about itself beyond its Maven coordinates, a name, a URL, and a single test dependency.

what is the basic shell of a project site

archetype:generate

when referring to the generate goal in the Archetype plugin, we write ?:?


Ensembles d'études connexes

Цитологія. Загальна та порівняльна ембріологія.

View Set

Entrepreneurship Market Research

View Set

NU140- Chapter 27 Safety, Security, and Emergency Preparedness

View Set

Synonyms and Antonyms 10.2_changed

View Set

FINAL EXAM FINA 365 (Chpt. 26,27,29)

View Set