maven入门(1-3)maven的生命周期
- clean 清理项目
- default 构建项目
- site 建立项目站点
命令行与生命周期
- 命令行用于调用maven的生命周期阶段,如mvn clean、mvn test、mvn clean install、mvn clean deploy site-deploy
4.1)intro: maven-dependency-plugin有多个目标,每个目标对应一个功能,上述提到的几个功能分别对应的插件目标为 dependency:analyze, dependency:tree 和 dependency:list;4.2)这是一种通用的写法: 冒号前面是 插件前缀,后面是该插件的目标;(干货——引入了插件前缀)
A1)default 与插件目标的绑定关系是由 项目打包类型所决定的,打包类型是通过 POM 中的 packaging 元素定义的;A2)除了默认的 jar 打包类型外,常见的打包类型还有 war,pom,maven-plugin,ear等;
- D:\classical_books\java_set\maven_in_action\mycode\chapter3>mvn clean install
- [INFO] Scanning for projects...
- [WARNING]
- [WARNING] Some problems were encountered while building the effective model for com.maven.chapter3:service:jar:1.0-SNAPSHOT
- [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 22, column 15
- [WARNING]
- [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
- [WARNING]
- [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
- [WARNING]
- [INFO]
- [INFO] ------------------------------------------------------------------------
- [INFO] Building service says hello maven. 1.0-SNAPSHOT
- [INFO] ------------------------------------------------------------------------
- [INFO]
- [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ service ---
- [INFO] Deleting D:\classical_books\java_set\maven_in_action\mycode\chapter3\target
- [INFO]
- [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ service ---
- [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
- [INFO] skip non existing resourceDirectory D:\classical_books\java_set\maven_in_action\mycode\chapter3\src\main\resources
- [INFO]
- [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ service ---
- [INFO] Changes detected - recompiling the module!
- [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
- [INFO] Compiling 1 source file to D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\classes
- [INFO]
- [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ service ---
- [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
- [INFO] skip non existing resourceDirectory D:\classical_books\java_set\maven_in_action\mycode\chapter3\src\test\resources
- [INFO]
- [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ service ---
- [INFO] Changes detected - recompiling the module!
- [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
- [INFO] Compiling 1 source file to D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\test-classes
- [INFO]
- [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ service ---
- [INFO] Surefire report directory: D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\surefire-reports
- -------------------------------------------------------
- T E S T S
- -------------------------------------------------------
- Running com.maven.chapter3.service.HelloTest
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.06 sec
- Results :
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
- [INFO]
- [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ service ---
- [INFO] Building jar: D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\service-1.0-SNAPSHOT.jar
- [INFO]
- [INFO] --- maven-shade-plugin:1.2.1:shade (default) @ service ---
- [INFO] Replacing original artifact with shaded artifact.
- [INFO] Replacing D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\service-1.0-SNAPSHOT.jar with D:\classical_books\java_set\maven_in
- _action\mycode\chapter3\target\service-1.0-SNAPSHOT-shaded.jar
- [INFO]
- [INFO] --- maven-install-plugin:2.4:install (default-install) @ service ---
- [INFO] Installing D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\service-1.0-SNAPSHOT.jar to D:\classical_books\java_set\maven_in_
- action\local_repo\com\maven\chapter3\service\1.0-SNAPSHOT\service-1.0-SNAPSHOT.jar
- [INFO] Installing D:\classical_books\java_set\maven_in_action\mycode\chapter3\pom.xml to D:\classical_books\java_set\maven_in_action\local_repo\com\ma
- ven\chapter3\service\1.0-SNAPSHOT\service-1.0-SNAPSHOT.pom
- [INFO] ------------------------------------------------------------------------
- [INFO] BUILD SUCCESS
- [INFO] ------------------------------------------------------------------------
- [INFO] Total time: 8.305 s
- [INFO] Finished at: 2016-06-22T18:43:41+08:00
- [INFO] Final Memory: 17M/142M
- [INFO] ------------------------------------------------------------------------
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <version>2.1.1</version>
- <executions>
- <execution>
- <id>attach-sources</id>
- <phase>verify</phase>
- <goals>
- <goal>jar-no-fork</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
A1)executions 下每个execution 子元素可以用来配置执行一个任务;A2)该例中配置了一个id 为 attach-sources 的 任务,通过 phrase 配置,将其绑定到 verify 生命周期阶段上,再通过 goal 配置指定要执行的插件 目标,至此,自定义插件配置完成了;(干货——总结了自定义插件配置的steps)
- D:\classical_books\java_set\maven_in_action\mycode\chapter3>mvn verify
- [INFO] Scanning for projects...
- [WARNING]
- [WARNING] Some problems were encountered while building the effective model for com.maven.chapter3:service:jar:1.0-SNAPSHOT
- [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 22, column 15
- [WARNING]
- [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
- [WARNING]
- [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
- [WARNING]
- [INFO]
- [INFO] ------------------------------------------------------------------------
- [INFO] Building service says hello maven. 1.0-SNAPSHOT
- [INFO] ------------------------------------------------------------------------
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-source-plugin/2.1.1/maven-source-plugin-2.1.1.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-source-plugin/2.1.1/maven-source-plugin-2.1.1.pom (5 KB at 2.6 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/14/maven-plugins-14.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/14/maven-plugins-14.pom (13 KB at 32.4 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-source-plugin/2.1.1/maven-source-plugin-2.1.1.jar
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-source-plugin/2.1.1/maven-source-plugin-2.1.1.jar (24 KB at 59.4 KB/se
- c)
- [INFO]
- [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ service ---
- [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
- [INFO] skip non existing resourceDirectory D:\classical_books\java_set\maven_in_action\mycode\chapter3\src\main\resources
- [INFO]
- [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ service ---
- [INFO] Nothing to compile - all classes are up to date
- [INFO]
- [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ service ---
- [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
- [INFO] skip non existing resourceDirectory D:\classical_books\java_set\maven_in_action\mycode\chapter3\src\test\resources
- [INFO]
- [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ service ---
- [INFO] Nothing to compile - all classes are up to date
- [INFO]
- [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ service ---
- [INFO] Surefire report directory: D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\surefire-reports
- -------------------------------------------------------
- T E S T S
- -------------------------------------------------------
- Running com.maven.chapter3.service.HelloTest
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 sec
- Results :
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
- [INFO]
- [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ service ---
- [INFO] Building jar: D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\service-1.0-SNAPSHOT.jar
- [INFO]
- [INFO] --- maven-shade-plugin:1.2.1:shade (default) @ service ---
- [INFO] Replacing original artifact with shaded artifact.
- [INFO] Replacing D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\service-1.0-SNAPSHOT.jar with D:\classical_books\java_set\maven_in
- _action\mycode\chapter3\target\service-1.0-SNAPSHOT-shaded.jar
- [INFO]
- [INFO] --- maven-source-plugin:2.1.1:jar-no-fork (attach-sources) @ service --- // maven-source-plugin:jar-no-fork 会得以执行.
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-archiver/2.4/maven-archiver-2.4.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-archiver/2.4/maven-archiver-2.4.pom (4 KB at 9.1 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom (9 KB at 19.0 KB/se
- c)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom (723 B at 1.8 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven/2.0/maven-2.0.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven/2.0/maven-2.0.pom (9 KB at 21.5 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom (3 KB at 6.2 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom (2 KB at 4.1 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom (2 KB at 3.6 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom (2 KB at 3.6 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom (2 KB at 3.1 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-11/plexus-archiver-1.0-alpha-11.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-11/plexus-archiver-1.0-alpha-11.pom (2 KB at 4.5 KB/sec
- )
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom (3 KB at 6.3 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom (9 KB at 21.0 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom (
- 2 KB at 4.1 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom (2 KB at 4.9 KB
- /sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom (8 KB at 19.9 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom (948 B at
- 2.4 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom (3 KB at 6.1 KB
- /sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom (2 KB at 2.6 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/1.0-alpha-3/plexus-io-1.0-alpha-3.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/1.0-alpha-3/plexus-io-1.0-alpha-3.pom (2 KB at 3.7 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom (3 KB at
- 5.7 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom (2 KB at 4.8 KB
- /sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom (3 KB at 6.1 KB
- /sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom (3 KB at 5.8 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.pom (3 KB at 7.1 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom (2 KB at 4.7 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom (2 KB at 3.3 KB/sec)
- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-archiver/2.4/maven-archiver-2.4.jar
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar
- Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.jar
- Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-archiver/2.4/maven-archiver-2.4.jar (20 KB at 46.2 KB/sec)
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar (12 KB at 15.5 KB/sec)
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.jar (50 KB at 43.3 KB/sec)
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar (154 KB at 116.1 KB/s
- ec)
- Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar (262 KB at 95.3 KB/sec)
- [INFO] Building jar: D:\classical_books\java_set\maven_in_action\mycode\chapter3\target\service-1.0-SNAPSHOT-sources.jar // 生成了源码文件.
- [INFO] ------------------------------------------------------------------------
- [INFO] BUILD SUCCESS
- [INFO] ------------------------------------------------------------------------
- [INFO] Total time: 18.822 s
- [INFO] Finished at: 2016-06-22T19:00:32+08:00
- [INFO] Final Memory: 13M/171M
- [INFO] ------------------------------------------------------------------------
4.1)problem:当插件目标被绑定到不同的生命周期的时候,其执行顺序会由生命周期阶段的先后顺序决定;当多个目标被绑定到同一阶段时,他们的执行顺序会是怎样?4.2)solutions:当多个插件目标绑定到同一个阶段的时候,这些插件声明的先后顺序决定了目标的执行顺序;
1.1)problem:如何从命令行配置插件?1.2)solutions:用户可以在maven 命令中使用 -D 参数,并伴随一个参数键=参数值的形式,来配置插件目标的参数;参数-D 是java 自带的,其功能是通过命令行设置一个 java 系统属性;(干货——参数-D 是java 自带的,其功能是通过命令行设置一个 java 系统属性)
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
- http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.maven.chapter3</groupId>
- <artifactId>service</artifactId>
- <version>1.0-SNAPSHOT</version>
- <name>service says hello maven.</name>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.7</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>1.2.1</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <mainClass>com.maven.chapter3.service.Hello</mainClass>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <version>2.1.1</version>
- <executions>
- <execution>
- <id>attach-sources</id>
- <phase>verify</phase>
- <goals>
- <goal>jar-no-fork</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.3</version>
- <executions>
- <execution>
- <id>ant-validate</id>
- <phase>validate</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <echo>i am bound to validate phase.</echo>
- </tasks>
- </configuration>
- </execution>
- <execution>
- <id>ant-verify</id>
- <phase>verify</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <echo>i am bound to verify phase.</echo>
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </project>
A1)maven-antrun-plugin:run 与 validate 阶段绑定,从而构成了一个id为 ant-validate 的任务;A2)插件 全局配置中的 configuration 元素位于 plugin 元素下面,而这里的configuration元素则位于 execution 元素下,表示这是 特定任务的配置,而非插件整体的配置;A3)ant-validate任务配置了一个 echo 任务,而id为 ant-verify 任务也配置了一个 echo 任务;
2.1)看个荔枝: maven-compiler-plugin 的目标前缀是 compiler。2.2)在描述插件的时候,还可以省去版本信息,让 maven 自动获取最新版本来进行表述, 如: mvn help:describe-Dplugin=org.apache.maven.plugins:maven-compiler-plugin2.3)进一步简化:可以使用插件目标前缀来替换坐标: mvn help:describe-Dplugin=compiler2.4)想仅仅描述某个插件目标的信息,可以加上 goal 参数:[cpp] view plaincopy
- mvn help:describe-Dplugin=compiler-Dgoal=compile
2.5)想让 maven-help-plugin 输出更详细的信息,可以加上 detail参数:[cpp] view plaincopy
- mvn help:describe-Dplugin=compiler-Ddetail
- D:\classical_books\java_set\maven_in_action\mycode\chapter3>mvn -h
- usage: mvn [options] [<goal(s)>] [<phase(s)>]
- mvn help:describe-Dplugin=compiler
- mvn dependency:tree
4)problem+solutions:
4.1)problem:为什么不是 mavnen-dependency-plugin:tree 而是 dependency:tree ?4.2)solutions:可以尝试如下命令:[cpp] view plaincopy
- mvn org.apache.maven.plugins:maven-help-plugin:2.1:describe-Dplugin=compiler
- mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:tree
4.2.1)上面的命令一对比,显然 前面的目录更加简洁,更容易使用;4.2.2)这也是 maven 引入 目标前缀的原因: help 是 maven-help-plugin 的目标前缀, 而 dependency 是 maven-dependency-plugin 的前缀,有了插件前缀,maven 就能够找到对应的 artifactId;不过 除了 artifactId ,maven 还需要得到 groupId 和 version 才能确定到 某个插件;
- <settings>
- <pluginGroups>
- <pluginGroup>com.your.plugins</pluginGroup>
- </pluginGroups>
- </settings>
对以上代码的分析(Analysis): maven 不仅仅会检查 org/apache/maven/plugins/maven-metadata.xml 和 org/codehaus/mojo/maven-metadata.xml ,还会检查 com/your/plugins/maven-metadata.xml;
A1)上述内容是从 中央仓库的 org.apche.maven.plugins groupId 下插件仓库元数据中截取的一些片段,从这段数据中就能看到 maven-clean-plugin 的前缀为 clean,maven-compile-plugin 的前缀为 compiler, maven-dependency-plugin 的前缀为 dependency;A2)当maven 解析到 dependency:tree 这样的命令后,他首先基于 默认的 groupId 归并所有插件仓库的元数据 org/apache/maven/plugins/maven-metadata.xml; 其次检查归并后的元数据, 找到对应的 artifactId 为 maven-dependency-plugin; 然后结合当前元数据的 groupId org.apache.maven.plugins;最后使用 章节8.3 的方法解析得到 version,从而得到完整的插件坐标;
maven入门(1-3)maven的生命周期相关推荐
- Maven入门指南⑦:Maven的生命周期和插件
Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...
- maven白小白(二)生命周期complie,package,install
目录 一.Maven对项目进行构建的生命周期 二.例子: 一.Maven对项目进行构建的生命周期 (构建:生产一个可以运行项目的过程) clean清理:清理的是class字节码文件,为下一次编译做准备 ...
- android生命周期方法,Android零基础入门|Activity状态和生命周期方法
原标题:Android零基础入门|Activity状态和生命周期方法 前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还 ...
- 【Maven入门教程】Maven的基本概念
一.POM(Project Object Model)项目对象模型 Pom在Maven中是一个XML文件,位于项目的根目录下,其包含着项目构建所需要的必要信息,Pom还支持继承,当一个项目中拥有多个模 ...
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】...
tags: Servlet 什么是Serlvet?# Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们 ...
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
什么是Servlet? Servlet其实就是一个遵循Servlet开发的java类.Servlet是由服务器调用的,运行在服务器端. 为什么要用到Servlet? 我们编写java程序想要在网上实现 ...
- spring入门第二讲 bean的生命周期 装配方式 Spring整合Junit
bean的生命周期 实体类 //初始化 public void init(){System.out.println("--初始化--"); }//销毁 public void de ...
- Maven入门指南① :Maven 快速入门及简单使用
原文链接:http://www.cnblogs.com/luotaoyeah/archive/2014/06/02/3764533.html 开发环境 MyEclipse 2014 JDK 1.8 M ...
- Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目
1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开pom.xml文件,添加如下内容: 1 <project xmlns="http://maven.a ...
- zeebe入门课程16-工作流生命周期3(Conditions)条件
zeebe中条件表达式使用.条件可用于条件流以确定以下任务. 条件是一个布尔表达式,具有类似于javascript的语法.它允许将工作流实例的变量与其他变量或文本(如数字.字符串等)进行比较. 工作流 ...
最新文章
- 对IsUnderPostmaster变量初步学习
- 测试一下,你能小学毕业吗?
- 我国在计算机科学领域故事,我国巨型计算机领域的一代天骄
- 计算机视觉工具包Luminoth
- 用Java语言,写一个植物大战僵尸简易版!
- (JAVA)TreeSet
- WordPress前台后台页面打开慢的解决方法
- python服务器环境搭建(2)——安装相关软件
- 针对IE的CSS hack 全面 实用
- C#- Chart Controls (转)
- 推理集 —— 特殊的时间
- linux中awk命令_Linux / Unix中的AWK命令
- trigger 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。
- Listary与QTtabbar整合
- 2018今日头条内推笔试1
- 登录失败 12306服务器不稳定,为什么12306登陆失败
- 手机android app 无线控制led灯开关
- 环游世界,走遍读过的每一个国家和城镇
- js 数字金额的转换 (转)
- 关于程序化交易系统的交易体系
热门文章
- 理解 JavaScript 作用域和作用域链
- 自己整合优化的一个Android框架
- XunSearch中常用方法整合
- grep awk sed练习
- Windows 8测试版安装图组
- 使用repeater,遍历数据,不规则排序,不同的样式之间切换
- 标题: Debian 下 VirtualBox 的桥接、USB 设置 ── 迷你怎么做 [转自sir]
- 二层交换机的六条安全秘诀
- 5G 信令流程 — 5GC 的连接管理(CM,Connection Management)
- 药师帮完成1.33亿美元D轮融资,投资方为老虎环球基金、H Capital和DCM