| ~~ Licensed to the Apache Software Foundation (ASF) under one |
| ~~ or more contributor license agreements. See the NOTICE file |
| ~~ distributed with this work for additional information |
| ~~ regarding copyright ownership. The ASF licenses this file |
| ~~ to you under the Apache License, Version 2.0 (the |
| ~~ "License"); you may not use this file except in compliance |
| ~~ with the License. You may obtain a copy of the License at |
| ~~ |
| ~~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~~ |
| ~~ Unless required by applicable law or agreed to in writing, |
| ~~ software distributed under the License is distributed on an |
| ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~~ KIND, either express or implied. See the License for the |
| ~~ specific language governing permissions and limitations |
| ~~ under the License. |
| |
| ------ |
| Failing the build on dependency analysis warnings |
| ------ |
| Mark Hobson |
| ------ |
| 2007-09-01 |
| ------ |
| |
| Failing the build on dependency analysis warnings |
| |
| A project's dependencies can be analyzed as part of the build process by binding the <<<dependency:analyze-only>>> |
| goal to the lifecycle. By default, the analysis will be performed during the <<<verify>>> lifecycle phase. The |
| plugin can then be configured to fail the build if any dependency analysis warnings are encountered by setting the |
| <<<failOnWarning>>> parameter. See the following POM configuration for an example: |
| |
| +---+ |
| <project> |
| ... |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>${project.version}</version> |
| <executions> |
| <execution> |
| <id>analyze</id> |
| <goals> |
| <goal>analyze-only</goal> |
| </goals> |
| <configuration> |
| <failOnWarning>true</failOnWarning> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| ... |
| </project> |
| +---+ |
| |
| Note that the <<<dependency:analyze-only>>> goal is used in preference to <<<dependency:analyze>>> since it doesn't |
| force a further compilation of the project, but uses the compiled classes produced from the earlier |
| <<<test-compile>>> phase in the lifecycle. |
| |
| The project's dependencies will then be automatically analyzed during the <<<verify>>> lifecycle phase, which can be |
| executed explicitly as follows: |
| |
| +---+ |
| mvn verify |
| +---+ |