关于maven导包的一些注意事项
Maven常用命令及其作用、常见问题、常用命令使用场景举例

Maven常⽤命令及其作⽤、常见问题、常⽤命令使⽤场景举例⼀、Maven常⽤命令及其作⽤1、 maven clean:对项⽬进⾏清理,删除target⽬录下编译的内容2、 maven compile:编译项⽬源代码3、 maven test:对项⽬进⾏运⾏测试4、 maven packet:打包⽂件并存放到项⽬的target⽬录下,打包好的⽂件通常都是编译后的class⽂件5、 maven install:在本地仓库⽣成仓库的安装包,可供其他项⽬引⽤,同时打包后的⽂件放到项⽬的target⽬录下⼆、常⽤命令使⽤场景举例1、mvn clean package依次执⾏了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段package命令完成了项⽬编译、单元测试、打包功能,但没有把打好的可执⾏jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库2、mvn clean install依次执⾏了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段install命令完成了项⽬编译、单元测试、打包功能,同时把打好的可执⾏jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库3、mvn clean deploy依次执⾏了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段deploy命令完成了项⽬编译、单元测试、打包功能,同时把打好的可执⾏jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库三、常见问题(⼀)mvn clean install 和 mvn install 的区别1、根据maven在执⾏⼀个⽣命周期命令时,理论上讲,不做mvn install 得到的jar包应该是最新的,除⾮使⽤其他⽅式修改jar包的内容,但没有修改源代码2、平时可以使⽤mvn install ,不使⽤clean会节省时间,但是最保险的⽅式还是mvn clean install,这样可以⽣成最新的jar包或者其他包(⼆)maven两种跳过单元测试⽅法的区别1、 mvn package -Dmaven.test.skip=true不但跳过了单元测试的运⾏,同时也跳过了测试代码的编译2、 mvn package -DskipTests跳过单元测试,但是会继续编译。
关于Maven工程依赖包的一系列问题

关于Maven⼯程依赖包的⼀系列问题本地仓库和镜像这些就不多说了。
创建Maven⼯程慢,转载⾃原因IDEA根据maven archetype的本质,其实是执⾏mvn archetype:generate命令,该命令执⾏时,需要指定⼀个archetype-catalog.xml⽂件。
该命令的参数-DarchetypeCatalog,可选值为:remote,internal ,local等,⽤来指定archetype-catalog.xml⽂件从哪⾥获取。
解决⽅法1.在下⾯界⾯添加⼀个属性,archetypeCatalog = internal⽅法⼆在maven的VM Options加上-DarchetypeCatalog=internal参数,如下:⽅法3: ⽤local (推荐这种⽅法完美)1.由于默认情况下,根据archetype创建maven项⽬会从⽹络下载catalog⽂件,导致创建maven项⽬缓慢Searching for remote catalog: /maven2/archetype-catalog.xml2.解决办法可以设置使⽤本地catalog⽂件,在IDEA中设置archetype的使⽤⽅式为local;-DarchetypeCatalog=local直接先把⽂件⽤搜狗浏览器或其它下载⼯具下载下来。
下载后放到哪⾥呢,这⾥与本地仓库的位置有关,假如本地仓库是maven默认的,并没有修改那么就需要放到 C:\Users\del-berlin\.m2\repository\org\apache\maven\archetype\archetype-catalog\2.4\下,本地仓库的默认位置:Default: ${user.home}/.m2/repositorymanven⽆法⾃动下载jar包转载⾃⾸先我的错误是在IDEA和ECLIPSE上都⽆法创建springboot与maven项⽬,都是同样的maven依赖不能⾃动下载的原因,所以排除了软件的问题,以下是解决路程:⼀:我先了解了⼀下maven仓库的构成与核⼼配置⽂件settings.xml中每个字段都代表的是什么意思1 <settings xmlns="/SETTINGS/1.0.0"2 xmlns:xsi="/2001/XMLSchema-instance"3 xsi:schemaLocation="/SETTINGS/1.0.04 https:///xsd/settings-1.0.0.xsd">5 <localRepository>${user.home}/.m2/repository</localRepository>6 <interactiveMode>true</interactiveMode>7 <usePluginRegistry>false</usePluginRegistry>8 <offline>false</offline>9 ...10 </settings><localRepository />:配置系统本地仓库的路径。
Maven 使用规范V1.5

Maven 使用规范V1.5注意:以下截图中,红色下划线是需要我们按情况修改的内容,其他的则是统一的固定不变的内容1.规范a.我们是后台组,所以pom文件中groupId 固定为cn.mastercom.backstage;b.project的默认包名为groupId + project名的小写,以底层的Comm为例,则默认包名为m,c.project的其他包名格式为groupId + project名的小写+ 名称,如m.cored.发布程序时,只能用打包,目标文件在target目录下2.全局设置找到文件…\apache-maven-3.5.3\conf\settings.xml并打开,修改mirrors节点,该节点下有且只有一个mirror:<mirror><id>aliyun</id><name>aliyun Maven</name><mirrorOf>central</mirrorOf><url>/nexus/content/groups/public/</url></mirror>最后应用设置.3.p om版本pom版本统一使用4.0版本4.设置唯一标志groupId固定为cn.mastercom.backstage;artifactId 必须和工程的名称保持一致,包括大小写;version 为3位,其中第三位表示bug修复或者较小的功能升级;第二位表示程序有重大改动;第一位表示程序重构.packaging 默认为jar;一般可省略5.设置属性变量红色下划线处填写程序的主入口所在的类,如果不是可执行的jar包,可为空.6.设置内网仓库目前我们使用的内网仓库是在192.168.1.10服务器上,可上传稀有的或者修正后的jar7.精简依赖jar包dependencies 这个节点下的依赖能精简的尽量精简,避免出现一个程序依赖的jar包好几百M的情况!8.设置源码目录此步骤必须存在,因为在不同的编译器里面,默认的源码目录不同,也就造成了编译器不能正确识别源码目录,因此必须设置,如下:或者等等9.资源文件处理我们写的每一个工具,基本上都有一个配置文件,以下代码实现自动将config目录下的xml文件拷贝到编译后的config目录下,省去手工处理,避免一些不必要的报错诊断;类似的,有些依赖*.dll文件或者*.properties文件也可以用这个自动拷贝10.设置编译插件以下是统一使用的编译插件:11.设置依赖路径及主入口如果不是可执行的jar包,可忽略此步骤;以下内容是固定的:12.拷贝依赖如果不是可执行的jar包,可忽略此步骤;以下内容是固定的:附件1. 不可执行jar包的pom文件样例pom.xml2.可执行jar包的pom文件样例pom.xml。
详解Maven项目Dependencies常见报错及解决方案

详解Maven项⽬Dependencies常见报错及解决⽅案个⼈最近项⽬中所遇到的问题,记录下便⾃⼰和同样遇到问题的⼩伙伴提供⼀个参考。
通常Maven⾥报红波浪线的常见问题①可能是⼦⼯程没有继承⽗⼯程注意⽗⼯程中有中对应的module:<groupId>com.fred.parent</groupId><artifactId>mall</artifactId><version>1.0-SNAPSHOT</version><modules><module>fred-api</module></modules>注意⼦⼯程中有对应的parent:<parent><groupId>com.fred.parent</groupId><artifactId>mall</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>fred-api</artifactId>②可能是导包智能提⽰⼀回车导致导错了包例如:⽗⼯程:<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud-dependencies.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>⼦⼯程:<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency></dependencies>注意看groupId,⽗⼯程是org.springframework.cloud,⽽⼦⼯程是org.springframework.boot,这种情况Maven会因为找不到要导⼊的包⽽导致MavenDependencies报红波浪线,但是在pom.xml⽂件中却不报错,并且显⽰正常,此时这种简单⽽⼜不容易找到的错误,毫不夸张的说还真能让⼈找个⼀天半天的。
Maven使用中的常见问题整理

Maven使用常见问题整理1、更新eclipse的classpath加入新依赖1、在dependencyManagement里面加入包括版本在内的依赖信息,如:<dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>1.6.2</version></dependency>2、在同级的dependencies节点里面加入该依赖,如:<dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId></dependency>3、使用mvn eclipse:clean删除当前的工程配置文件,并用mvn eclipse:eclipse重新生成。
4、导入或刷新该eclipse工程。
2、工程配置未使用pom.xml更新问题:Project configuration is not up-to-date with pom.xml导入maven工程后,出现如下错误:Description Resource Path Location TypeProject configuration is not up-to-date with pom.xml. Run project configuration update rdc line 1 Maven Configuration Problem解决办法就是:右键项目,【Maven】--》【Update Project Configuration...】即可。
3、如何修改默认GBK的资源过滤Using platform encoding (GBK actually) to copy filtered resources需要指定字符集:<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.2</version><configuration><encoding>UTF-8</encoding></configuration></plugin>4、不支持范型的JDK版本问题maven打包时始终出现TripApplyAction.java:[267,6]-source 1.3中不支持泛型(请使用-source 5或更高版本以启用泛型)Map<String, Object> map = new HashMap<String, Object>();解决方法,指定JDK版本:在pom.xml文件中加入下一面一段语句来指定所用的版本,尽管在eclipse中配置了正确的“Build Path”:<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><target>1.5</target><source>1.5</source><encoding>UTF-8</encoding></configuration></plugin></plugins></build>重新运行mvn clean eclipse:eclipse -Dmaven.test.skip=true,接着mvn package,问题解决。
maven_excludes表达式__解释说明

maven excludes表达式解释说明引言1.1 概述在使用Maven构建项目过程中,我们可能会遇到需要排除某些依赖项或文件的情况。
而Maven Excludes表达式就是一种用来表示需要排除的目标的语法规则。
通过使用Excludes表达式,我们可以更加灵活地管理和控制项目中的依赖项和资源文件。
1.2 文章结构本文将围绕着Maven Excludes表达式展开讨论,首先会对Excludes表达式进行解释,并介绍它在项目中的应用场景。
然后,我们将深入讲解Excludes表达式的语法和规则,帮助读者理解如何编写有效的Excludes表达式。
随后,将通过实际应用示例来展示如何在Maven项目中使用Excludes表达式进行排除操作。
最后,本文将给出一些常见问题与解决方法,帮助读者更好地应对可能遇到的困惑和挑战。
1.3 目的本文旨在帮助读者全面了解和掌握Maven Excludes表达式的概念、语法、以及其在项目中的应用方法。
通过深入学习和实践,读者将能够正确地编写并运用Excludes表达式来满足项目需求,并解决可能出现的问题。
通过本文的指导,读者将能够更加高效地使用Maven构建项目,提高开发效率和质量。
文章“1. 引言”部分内容结束。
2. Maven Excludes表达式:2.1 理解Maven Excludes表达式:Maven Excludes表达式是在Maven项目配置文件(pom.xml)中使用的一种语法,用于排除特定的依赖项或资源文件,以控制项目构建过程中的依赖项和资源的处理。
Excludes表达式可以帮助我们更精确地指定需要排除的依赖项或资源文件,以满足项目需求和架构设计。
通过使用Excludes表达式,我们可以避免不必要的依赖项引入和资源文件复制,从而减少构建过程中的冗余和复杂性。
2.2 使用Maven Excludes表达式的场景:Maven Excludes表达式主要用于以下场景:- 排除特定版本的依赖项:有时候我们可能需要排除某个特定版本的依赖项,这可以通过指定groupId、artifactId和version等信息来实现。
maven 编译后拷贝到指定位置

maven 编译后拷贝到指定位置摘要:1.Maven 简介2.Maven 编译过程3.拷贝编译后的文件到指定位置4.使用Maven 命令行参数实现拷贝功能5.总结正文:Maven 是一个项目管理和综合工具,它可以帮助开发者更轻松地构建、依赖管理和部署项目。
在Maven 编译过程中,编译后的文件需要拷贝到指定的位置,以便进行下一步操作。
本文将详细介绍如何使用Maven 编译后拷贝到指定位置。
首先,我们需要了解Maven 的编译过程。
Maven 使用插件来完成编译任务,它会在pom.xml 文件中查找对应的编译插件,然后执行编译命令。
在这个过程中,Maven 会自动处理编译后的文件,为拷贝操作做好准备。
接下来,我们需要知道如何将编译后的文件拷贝到指定位置。
在Maven 中,可以使用命令行参数来实现这个功能。
具体来说,可以使用-Dmaven.test.skip=true 参数来跳过测试编译,从而减少不必要的文件拷贝。
此外,还可以使用piler.target 参数来设置编译目标版本,以及使用piler.source 参数来设置编译源版本。
最后,我们可以使用Maven 的拷贝插件(maven-dependency-plugin)来完成文件拷贝任务。
通过在pom.xml 文件中添加以下配置,可以实现将编译后的文件拷贝到指定位置:```xml<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.2.0</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/classes</outputDirectory></configuration></execution></executions></plugin></plugins></build>```通过以上配置,在Maven 的package 阶段,会将编译后的文件拷贝到指定的输出目录。
maven导包方法

maven导包方法
Maven是一个Java项目管理工具,它提供了一种简单的方式来管理项目的依赖关系。
以下是在Maven中导入包的方法:
1. 在项目的pom.xml文件中添加依赖声明。
在
`<dependencies>` 标签内添加需要的包的依赖声明。
例如: ```xml
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
</dependencies>
```
这个例子中,我们导入了Google Guava库的版本为30.1-jre 的依赖。
2. 在项目目录下运行Maven构建命令。
在命令行窗口中,进入包含pom.xml文件的项目目录,然后运行以下命令:
```shell
mvn install
```
这将使用Maven从Maven中央仓库下载所需的依赖项,并
将它们添加到项目的类路径中。
3. 构建项目。
运行以下Maven构建命令来编译和构建项目:
```shell
mvn package
```
Maven将执行项目的构建过程,并生成可执行的JAR文件或WAR文件等。
通过执行以上步骤,你就可以在Maven项目中成功导入所需的包。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在初次使用Maven项目时,大家总会遇到一系列的问题,在这里,我列出一下几点注意事项:
需求工具:Eclipse、maven配置包
1.首先你的Eclipse版本得支持maven的配置
打开自己的Eclipse 以此点击Window—》Preferences(如图1.1)
图1.1
弹出以下窗口,按照提示依次点击
图1.2
如果打开以上窗口(如图1.2),没有看见图中第一个框,证明你的Eclipse版本不支持maven插件,请去官网下载最新版本的Eclipse
第三步点完之后,弹出的框,找到自己电脑上的maven配置包(如图1.3)
图1.3
进入maven配置包之后点击conf文件夹,找到“settings.xml”(如图1.4)
图1.4
点击打开之后,如图所示
图1.5
按照途中的步骤操作,点OK之后,就证明的你的Eclipse成功配置好了maven(如图1.5)
接下来是导包过程中需要注意的一些问题
首先创建一个maven项目(如图2.1)
图2.1
正确的maven项目
错误的maven项目
双击打开pom.xml文件,点击:Dependencies(如图2.2)
图2.2
点击图中第2部,弹出上图中的对话框,在第3步的位置输入你想要导入的jar包,当页面右下角出现图2.3所标出的进度,表示正在在线搜索jar包,请耐心等待
2.3
如图2.4中出现了很多jar包,选中你所想要导入的jar包,点OK
图2.4
这就成功导入了jar包
接下来提供几个导包不成功的解决方案:
1.创建maven项目时报错:plugin:
2.6(如图
3.1)
图3.1
解决方案:找到自己电脑C/用户(User)下的.m2文件,将解压缩到当前位置,覆盖电脑原本的.m2文件,然后按照如下步骤操作(如图3.2):
图3.2
点击Update Project后弹出如下对话框(图3.3)
图3.3
选中图中标注的两个框,然后点OK,这个时候Eclipse会自动下载maven项目所需要的依赖包,静待即可。
2.还有一种情况是,不报错,输入想要导入的jar包也没有图2.3所提示的进度,
那就得更新maven镜像库了
依次点击window--->show view 找到图中所示对话框(图4.1)
图4.1
打开之后找到图4.2中所示位置
图4.2
鼠标右键点击图中所示位置去更新镜像(图4.3)
图4.3
这时候Eclipse右下角会出现图中所示进度条(图4.4)
注意:此进度一直是0,等20分钟所有会自动消失(视网速而定),消失之后就可以正常导包了
以上就是本人所总结的用到maven的时候所常见的问题,解释不周,多多担待。