- python中eof表示什么语句错误
- python中for语句涉及的序列
- python中if是循环语句吗
- python中if语句与或非
在 Maven 出现之前,项目构建的生命周期就已经存在,开发人员每天都在对项目进行清理,编译,测试及部署,但由于没有统一的规范,不同公司甚至不同项目之间的构建的方式都不尽相同。
Maven 从大量项目和构建工具中学习和反思,最后总结了一套高度完美的,易扩展的生命周期。这个生命周期将项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建过程进行了抽象和统一。
package net.biancheng.www; /** * 模拟 maven 生命周期 */ public abstract class LifeCycle { //定义构建过程 public void build() { //模拟生命周期各个阶段,即调用插件中目标 clean(); initialize(); compile(); packager(); install(); } //定义清理的过程 public abstract void clean(); //定义初始化的过程 public abstract void initialize(); //定义编译的过程 public abstract void compile(); //定义打包的过程 public abstract void packager(); //定义安装的过程 public abstract void install(); }
package net.biancheng.www; /** * 子类模拟clean 相关的插件 */ public abstract class CleanPlugin extends LifeCycle { //重写父类(生命周期)的清理工作 //模拟插件目标 @Override public void clean() { System.out.println("清理"); } }
注意:Maven 插件和插件目标了解即可,在本教程后面的章节 Maven 插件中会详细介绍。
mvn install
与构建阶段的前后依赖关系不同,三套生命周期本身是相互独立的,用户可以只调用 clean 生命周期的某个阶段,也可以只调用 default 生命周期的某个阶段,而不会对其他生命周期造成任何影响。
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.biancheng.www</groupId> <artifactId>maven</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- junit依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>compile</scope> </dependency> <!-- log4j依赖 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <build> <plugins> <!-- 添加插件 maven-antrun-plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.1</version> <executions> <execution> <!--自定义阶段 id --> <id>www.biancheng.net pre-clean</id> <!--阶段 --> <phase>pre-clean</phase> <!--目标 --> <goals> <goal>run</goal> </goals> <!--配置 --> <configuration> <!-- 执行的任务 --> <tasks> <!-- 输出自定义文本信息 --> <echo>预清理阶段,编程帮 欢迎您的到来,网址:www.biancheng.net</echo> </tasks> </configuration> </execution> <execution> <!--自定义阶段 id --> <id>www.biancheng.net clean</id> <!--阶段 --> <phase>clean</phase> <!--目标 --> <goals> <goal>run</goal> </goals> <!--配置 --> <configuration> <!-- 执行的任务 --> <tasks> <!--自定义文本信息 --> <echo>清理阶段,编程帮 欢迎您的到来,网址:www.biancheng.net</echo> </tasks> </configuration> </execution> <execution> <!--自定义阶段 id --> <id>www.biancheng.net post-clean</id> <!--阶段 --> <phase>post-clean</phase> <!-- 目标 --> <goals> <goal>run</goal> </goals> <!--配置 --> <configuration> <!-- 执行的任务 --> <tasks> <!-- 执行的任务 --> <echo>后清理阶段,编程帮 欢迎您的到来,网址:www.biancheng.net</echo> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
mvn post-clean
,结果如下。
[INFO] Scanning for projects... [INFO] [INFO] ----------------------< net.biancheng.www:maven >----------------------- [INFO] Building maven 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-antrun-plugin:1.1:run (www.biancheng.net pre-clean) @ maven --- [INFO] Executing tasks [echo] 预清理阶段,编程帮 欢迎您的到来,网址:www.biancheng.net [INFO] Executed tasks [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven --- [INFO] [INFO] --- maven-antrun-plugin:1.1:run (www.biancheng.net clean) @ maven --- [INFO] Executing tasks [echo] 清理阶段,编程帮 欢迎您的到来,网址:www.biancheng.net [INFO] Executed tasks [INFO] [INFO] --- maven-antrun-plugin:1.1:run (www.biancheng.net post-clean) @ maven --- [INFO] Executing tasks [echo] 后清理阶段,编程帮 欢迎您的到来,网址:www.biancheng.net [INFO] Executed tasks [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.365 s [INFO] Finished at: 2021-03-01T13:25:07+08:00 [INFO] ------------------------------------------------------------------------
阶段 | 描述 |
---|---|
validate | 验证项目是否正确以及所有必要信息是否可用。 |
initialize | 初始化构建状态。 |
generate-sources | 生成编译阶段需要的所有源码文件。 |
process-sources | 处理源码文件,例如过滤某些值。 |
generate-resources | 生成项目打包阶段需要的资源文件。 |
process-resources | 处理资源文件,并复制到输出目录,为打包阶段做准备。 |
compile | 编译源代码,并移动到输出目录。 |
process-classes | 处理编译生成的字节码文件 |
generate-test-sources | 生成编译阶段需要的测试源代码。 |
process-test-sources | 处理测试资源,并复制到测试输出目录。 |
test-compile | 编译测试源代码并移动到测试输出目录中。 |
test | 使用适当的单元测试框架(例如 JUnit)运行测试。 |
prepare-package | 在真正打包之前,执行一些必要的操作。 |
package | 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件。 |
pre-integration-test | 在集成测试执行之前,执行所需的操作,例如设置环境变量。 |
integration-test | 处理和部署所需的包到集成测试能够运行的环境中。 |
post-integration-test | 在集成测试被执行后执行必要的操作,例如清理环境。 |
verify | 对集成测试的结果进行检查,以保证质量达标。 |
install | 安装打包的项目到本地仓库,以供其他项目使用。 |
deploy | 拷贝最终的包文件到远程仓库中,以共享给其他开发人员和项目。 |
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.biancheng.www</groupId> <artifactId>maven</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- junit依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>compile</scope> </dependency> <!-- log4j依赖 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <build> <plugins> <!-- 添加插件 maven-antrun-plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.1</version> <executions> <execution> <id>www.biancheng.net validate</id> <phase>validate</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net 验证阶段……</echo> </tasks> </configuration> </execution> <execution> <id>www.biancheng.net compile</id> <phase>compile</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net 编译阶段……</echo> </tasks> </configuration> </execution> <execution> <id>www.biancheng.net test</id> <phase>test</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net 测试阶段……</echo> </tasks> </configuration> </execution> <execution> <id>www.biancheng.net package</id> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net 打包阶段……</echo> </tasks> </configuration> </execution> <execution> <id>www.biancheng.net deploy</id> <phase>deploy</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net 部署阶段……</echo> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
D:\maven>mvn compile
,结果如下。
[INFO] Scanning for projects... [INFO] [INFO] ----------------------< net.biancheng.www:maven >----------------------- [INFO] Building maven 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-antrun-plugin:1.1:run (www.biancheng.net validate) @ maven --- [INFO] Executing tasks [echo] 编程帮 欢迎您的到来,网址:www.biancheng.net 验证阶段…… [INFO] Executed tasks [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven --- [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory D:\maven\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven --- [INFO] No sources to compile [INFO] [INFO] --- maven-antrun-plugin:1.1:run (www.biancheng.net compile) @ maven --- [INFO] Executing tasks [echo] 编程帮 欢迎您的到来,网址:www.biancheng.net 编译阶段…… [INFO] Executed tasks [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.652 s [INFO] Finished at: 2021-03-01T15:07:50+08:00 [INFO] ------------------------------------------------------------------------
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.biancheng.www</groupId> <artifactId>maven</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- junit依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>compile</scope> </dependency> <!-- log4j依赖 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> </plugin> <!-- 添加插件 maven-antrun-plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.3</version> <executions> <execution> <id>www.bianchengbang.net pre-site</id> <phase>pre-site</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net pre-site 阶段……</echo> </tasks> </configuration> </execution> <execution> <id>www.bianchengbang.net site</id> <phase>site</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net site 阶段……</echo> </tasks> </configuration> </execution> <execution> <id>www.bianchengbang.net post-site</id> <phase>post-site</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net post-site 阶段……</echo> </tasks> </configuration> </execution> <execution> <id>www.bianchengbang.net site-deploy</id> <phase>site-deploy</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>编程帮 欢迎您的到来,网址:www.biancheng.net site-deploy 阶段……</echo> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
mvn post-site
,结果如下。
[INFO] Scanning for projects... [INFO] [INFO] ----------------------< net.biancheng.www:maven >----------------------- [INFO] Building maven 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-antrun-plugin:1.3:run (www.bianchengbang.net pre-site) @ maven --- [INFO] Executing tasks [echo] 编程帮 欢迎您的到来,网址:www.biancheng.net pre-site 阶段…… [INFO] Executed tasks [INFO] [INFO] --- maven-site-plugin:3.7.1:site (default-site) @ maven --- [WARNING] Input file encoding has not been set, using platform encoding GBK, i.e. build is platform dependent! [INFO] configuring report plugin org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0 [INFO] 15 reports detected for maven-project-info-reports-plugin:3.0.0: ci-management, dependencies, dependency-info, dependency-management, distribution-management, index, issue-management, licenses, mailing-lists, modules, plugin-management, plugins, scm, summary, team [INFO] Rendering site with default locale English (en) [WARNING] No project URL defined - decoration links will not be relativized! [INFO] Rendering content with org.apache.maven.skins:maven-default-skin:jar:1.2 skin. [INFO] Generating "Dependencies" report --- maven-project-info-reports-plugin:3.0.0:dependencies [INFO] Generating "Dependency Information" report --- maven-project-info-reports-plugin:3.0.0:dependency-info [INFO] Generating "About" report --- maven-project-info-reports-plugin:3.0.0:index [INFO] Generating "Plugin Management" report --- maven-project-info-reports-plugin:3.0.0:plugin-management [INFO] Generating "Plugins" report --- maven-project-info-reports-plugin:3.0.0:plugins [INFO] Generating "Summary" report --- maven-project-info-reports-plugin:3.0.0:summary [INFO] [INFO] --- maven-antrun-plugin:1.3:run (www.bianchengbang.net site) @ maven --- [INFO] Executing tasks [echo] 编程帮 欢迎您的到来,网址:www.biancheng.net site 阶段…… [INFO] Executed tasks [INFO] [INFO] --- maven-antrun-plugin:1.3:run (www.bianchengbang.net post-site) @ maven --- [INFO] Executing tasks [echo] 编程帮 欢迎您的到来,网址:www.biancheng.net post-site 阶段…… [INFO] Executed tasks [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.824 s [INFO] Finished at: 2021-03-01T16:02:44+08:00 [INFO] ------------------------------------------------------------------------
假设我想在编译项目之前将项目本地依赖项(jar 文件)安装到本地 Maven 存储库 (~/.m2),这样我就可以在 POM 中引用它们,就像引用 Maven 中的任何依赖项一样中央。目前,我正在使用
我需要使用 Clean 编程语言列出目录中的所有文件,但我不知道这样做的任何函数。有人可以帮助我吗? 最佳答案 您可以使用 Directory module 中的函数 getDirectoryCont
我的应用程序工作正常,我能够使用 jar 执行 mvn clean install并能够执行 jar 文件,但我将其更改为 war 文件,但我无法执行 mvn clean install . 这些之间
我是 Maven 的初学者。当我点击 clean & Build 在 netbeans 中重建我的项目时,它抛出一个错误 Failed to execute goal org.apache.maven
我已经为我的一些模型覆盖了 clean() 方法来构造约束以满足我的数据库架构要求(因为它需要运行时信息来进行这些验证)。 从现在开始,我已经完成了大部分后端组件(模型、信号、..),现在我正在尝试编
从 Android Studio 项目的终端发出以下语句有什么区别: Android_Studio_Project_Path: ./gradlew clean Android_Studio_Proje
我曾在不同的团队工作过,在一个团队中,人们倾向于在合并旧分支后立即清理它们。在其他团队分支永远停留。删除/保留旧分支有什么好处?这是否取决于我们使用的源代码控制系统? (在我的情况下 - SVN)。
我有一个相当复杂的(iPhone SDK)Xcode 项目,有很多目标——4 个静态库、单元测试、多个示例应用程序、一个运行 shell 脚本的 BuildAll 以及一个运行另一个 shell 脚本
我有一个 cucumber 项目,当您单独运行 cucumberrunner 文件时,该项目运行良好 [运行方式 -->Junit 测试]。 当我尝试使用 maven 命令运行相同的文件时,它失败了:
我在 cruiseControl 中有一个 msbuild 任务,它首先清除然后重建。如果我将其更改为“清理并构建”(而不是重建),会有什么不同吗? Rebuild 为每个项目执行“清理 + 构建”。
我对 Clean Architecture 中的 Gateway to Entity 依赖有疑问。我认为以下同心圆图形经常被介绍为整洁的架构。 在上图中,Gateway并没有直视Entity。但是,还
我使用M2e + Eclipse + Maven,我想知道两者之间的区别: 在终端和中运行“mvn clean” 从Eclipse 运行“干净的项目”吗? 有人可以请教吗? 最佳答案 通过一些快速测试
我试图弄清楚 package.json 脚本部分中“clean:dist”或“clean:js”与“clean”的作用?我在网上搜索并查看了NPM documentation但找不到任何线索。那么有人
我在 Linux 上的构建过程有一个小问题。 无论出于何种原因,在我的代码中,如果我发出“make clean”命令,Linux 会生成一个名为“clean”的文件。问题是我的项目的 makefile
mvn clean package和mvn clean install到底有什么区别?当我运行这两个命令时,它们似乎都在做同样的事情。 最佳答案 好吧,两者都会清理。这意味着他们将删除目标文件夹。真正
您在每个应用程序的开发过程中都遇到了某个时刻,您在模拟器中看到的内容与您认为应该发生的情况不符。这些大多是人为错误——或者至少在大多数我的案例中是这样的;-)——但有时 Xcode 只是“迷失了方向”
我使用这两个命令来解决我项目中的依赖问题。 mvn -U clean compile解决的问题。但我不知道它们之间的区别。请解释这些命令之间的区别以及我何时使用 mvn clean compile和
我正在为我的项目使用 Maven。如果我的项目不使用某些本地资源,这不是问题。 以便我遵循本指南 https://stackoverflow.com/a/61576687/6720896 将我的本地
我正在尝试创建一个 Grunt 任务来清理目录中的所有文件、子目录及其文件等。 我可以删除所有文件,但文件夹始终保留。 clean: { preview: ["live_previe
我有以下情况: 我有一个包含几个子项目的项目。今天我尝试通过命令行使用 gradle 构建项目。 执行 ./gradlew clean :build 时构建成功, 但不是 ./gradlew clea
我是一名优秀的程序员,十分优秀!