Maven
Maven
scope
说明
在Maven项目中,scope用于指定依赖的范围,它决定了Maven将在何时使用该依赖。Maven提供了几个scope,以下是各个scope的作用:
- compile
compile是Maven默认的scope,它表示该依赖将在编译、测试和运行时都可用。这意味着,该依赖将被包括在最终的构建产品中。
- provided
provided表示该依赖将只在编译和测试阶段可用,而在运行时不包含在构建产品中。通常,这个scope用于发布产品时,因为提供依赖项的服务器将负责提供该依赖项。
- runtime
runtime表示该依赖项将在运行时可用,但不会在编译时包含在构建产品中。它通常用于编写支持多种不同运行时的应用程序,例如Web应用程序在运行时需要Tomcat容器,但编译和测试时不需要。
- test
test表示该依赖项只会在测试中使用,而在运行时和编译期不会包含在构建产品中。这个scope通常用于测试框架、Mock对象和其他仅用于测试的库。
- system
system表示依赖项是在本地系统上找到的。这个scope在项目中极少使用,因为它要求手动设置路径,这使得该项依赖性难以共享或迁移。
- import
import表示该依赖项不是一个实际的依赖项,而是用于导入构建中的一个POM文件。这个scope在父POM文件中很常见。它让你可以在一个POM文件中声明依赖,而另一个POM文件来管理这些依赖。
以上是Maven中的常用scope。通过合理使用这些scope,可以有效地管理Maven项目中的依赖项。
使用场景
下面针对Maven中常用的scope,给出它的使用场景和对应说明:
- compile —- 编译、测试以及运行时都可用,默认
这是Maven默认的scope,表示该依赖将在编译、测试以及运行时都可用。通常情况下,编译时需要用到的依赖应该都在该scope下。这些依赖的JAR文件将被打包到最终的产品中。
- provided — 编译和测试时,用于开发独立的工具,当在实际使用时会依赖于相关环境
provided表示该依赖项将在编译和测试阶段需要,但在运行时不会包含在构建产品中。比如,Web应用程序可能需要Servlet API或者JSP API,但是在运行时该API已经被Web容器提供了,所以不再需要在构建产品中包含这些API。所以,这个scope通常用于在编译和测试时,为开发者提供它们需要的依赖项。
- runtime — 编译无,运行时有,(Tomcat容器 提供运行时环境,web应用程序就不需要打包到产品中)
runtime表示该依赖项将只在运行时可用,而不会在编译时含在构建产品它通常被用于那些只在特定运行时(如Tomcat、JBoss)下使用的依赖包,这些依赖包在编译阶段是不包含在构建产品中的。
- test — junit测试时可用
test表示该依赖项仅用于测试,不会被包含在最终的构建产品中。它通常被用于JUnit测试、Mockito框架或者其他测试框架。在测试时需要的依赖项会在依赖图上找到该scope,但在编译或者运行时则不会被使用- system
system表示依赖项是在本地系统上找到的。个scope用于引用本地文件系统上存在的一些JAR文件。这种依赖项很少被用到,为这限制这性难以共享或迁移。
- import – 父模块声明依赖,不引入
import表示该依赖项不是一个实际的依赖项,而是用于导入构建中的一个POM文件。这个scope通常用于父POM文件,方便多个子POM使用同一组依赖时,避免重复声明和维护。
通过正确使用上面的几种scope,可以帮助开发人员管理Maven项目中的依赖,避免依赖冲突和重复引用,同时也能提高构建速度,减少不必要的资源浪费。
runtime 特殊说明
runtime作为运行时环境,不需要打包到 Web应用程序,Web应用程序 依赖于 Web容器运行,Web容器提供运行时环境。
1 |
|
1 |
|
Profile
Maven是一个功能强大的构建工具,可以轻松完成编译、测试、打包、发布等工作。在Maven中,可以通过Profile配置来针对不同的环境进行构建,例如开发、测试、生产等环境,方便我们在不同环境中使用不同的依赖库、配置文件等。
具体来说,Maven的Profile配置主要包括以下几个方面:
- profile的激活方式
在pom.xml文件中,使用
- 手动指定:在mvn命令后加上-P参数,并指定Profile的名字;
- 根据环境变量:使用环境变量来自动激活某个Profile,例如根据操作系统来激活某个Profile;
- 根据属性值:在Profile中定义一个
标签,并根据某个属性的值来激活Profile。
- profile的作用域
在Maven中,Profile的作用范围有以下三种:
- (1)Project:在当前的项目中激Profile;
- (2)Module:在当前的项目中激活Profile,并且只对特定的Module生效;
- (3)Runtime:在运行时激活Profile。
- profile的配置内容
在Profile中,可以配置需要进行的所有操作,例如指定依赖库、修改配置文件、生成打包文件等。具体配置方式与在pom.xml文件中其他部分的配置一致,只需要将配置放在Profile标签中即可。
下面是一个Profile的示例代码,仅供参考:
1 |
|
在上面的示例代码中,我们定义了一个名为”dev”的,通过
总的来说,Maven的Profile配置可以帮助我们轻松地管理不同环境下的配置,提高开发效率并减少错误率。在实际的项目开发中,可以根据项目需要进行自定义配置,灵活应用Profile功能。
将项目发布至中央仓库
maven的配置
maven deploy命令的含义
maven deploy命令是将你负责的模块发布到你配置的仓库位置。
多模块开发中使用deploy命令
配置仓库位置,一般公司都会搭建自己的公司私服,用于加速获取jar以及管理公司的一些技术沉淀工具包之类的
1 |
|
方案一:nexus
如何发布自己的项目到Maven中央仓库? - 腾讯云开发者社区-腾讯云 (tencent.com)
nexus
– 私服
方案二:Sonatype
来开源吧!发布开源组件到 MavenCentral 仓库超详细攻略 - 掘金 (juejin.cn)
1 |
|
Sonatype
1 |
|
具体业务
maven archetype
windows 不支持powerShell .
Linux :
1 |
|
启动spring 项目
1 |
|
其中,yourJarFile.jar
是您要启动的JAR文件的名称,com.example.MainClass
是JAR文件中包含main
方法的主类的完整类名。
- 使用
java -cp
命令指定类路径来运行Java程序,并指定主类:其中,1
java -cp yourClassPath com.example.MainClass
yourClassPath
是包含所有依赖类的路径,多个路径之间使用冒号(Linux/Mac)或分号(Windows)分隔,com.example.MainClass
是包含main
方法的主类的完整类名。
请注意,使用java -jar
命令时,JAR文件必须包含一个META-INF/MANIFEST.MF
文件,并在其中指定主类。而使用java -cp
命令时,您需要手动指定类路径,并确保所有依赖类都在类路径中。
如果您需要更详细的信息或遇到其他问题,请提供更多的上下文或错误信息,以便我能够更好地帮助您。
1 |
|
mvn dependency:resolve
1
2
3
4
5 这个命令会解析pom.xml文件中定义的依赖项,并下载它们到本地的Maven仓库中。
如果依赖项已经在本地仓库中存在,Maven将跳过下载过程。
3. 如果您还希望将依赖项复制到项目的特定目录中,可以运行以下命令:
mvn dependency:copy-dependencies
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 这个命令会将项目的依赖项复制到项目根目录下的`target/dependency`目录中。
您可以根据需要修改目标目录的路径。
请注意,执行上述命令需要在项目的根目录下存在有效的pom.xml文件,该文件描述了项目的依赖关系和其他配置信息。
使用Maven命令行下载依赖项可以在没有集成开发环境(IDE)的情况下进行依赖项的管理和下载。但是,使用IDE(如IntelliJ IDEA、Eclipse等)可以更方便地管理和下载依赖项,并提供更多的功能和工具支持。
如果您需要更详细的信息或遇到其他问题,请提供更多的上下文或错误信息,以便我能够更好地帮助您。
## 命令行 编译 spring boot 项目
要通过原始命令行使用mvn、jar、java、javac启动Spring Boot项目,可以按照以下步骤进行操作:
1. 确保你已经安装了Java开发工具包(JDK)并配置了Java环境变量。
2. 在项目的根目录下,使用命令行终端进入到项目的源代码目录。
3. 使用以下命令编译项目:
mvn compile
1
2
3 这个命令会使用Maven编译项目的源代码,并将编译后的class文件输出到`target/classes`目录中。
4. 使用以下命令打包项目:
mvn package
1
2
3 这个命令会使用Maven将项目打包成一个可执行的jar文件。打包完成后,你可以在项目的`target`目录下找到生成的jar文件。
5. 使用以下命令启动Spring Boot项目:
java -jar target/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 将`<jar-file-name>`替换为你的项目生成的jar文件的名称。
执行上述命令后,Java会启动Spring Boot应用程序,并在命令行中显示应用程序的日志输出。
请注意,执行上述步骤需要在项目的根目录下存在有效的`pom.xml`文件,该文件描述了项目的依赖关系和其他配置信息。
使用mvn、jar、java、javac命令行启动Spring Boot项目可以在没有构建工具(如Maven或Gradle)的情况下进行项目的编译和启动。但是,使用构建工具可以更方便地管理项目的依赖关系和构建过程。
如果你的Spring Boot项目使用了Gradle作为构建工具,可以使用类似的命令进行编译和启动。只需将`mvn`替换为`gradle`即可。
总结起来,通过mvn、jar、java、javac命令行可以编译和启动Spring Boot项目。按照上述步骤执行命令,确保项目的依赖关系和配置正确,并使用正确的命令行参数启动项目。
## 下载对应依赖 jar
这个错误提示说找不到 `/usr/local/Cellar/maven/3.9.2/libexec/conf/dp-oss-1.0.0.jar` 这个文件,可能是因为您指定的文件路径有误。请检查���下这个文件是否真的存在,或者您是否拼写错误了。
如果确实缺少`dp-oss-1.0.0.jar` 文件,那么您需要从其他地方(如Maven中央仓库)下载并安装该文件。可以按照以下步骤下载并安装`dp-oss-1.0.0.jar` 文件:
1. 打开Maven中央仓库网站: 您可以打开[Maven中央仓库](https://mvnrepository.com/)并在搜索框中输入`dp-oss`。搜索结果中会列出所有与`dp-oss`相关的依赖项。
2. 选择需要下载的依赖项: 从搜索结果中选择需要下载的 `dp-oss`依赖项,并单击依赖项的名称。
3. 下载`dp-oss-1.0.0.jar`: 在依赖项页面上,找到`dp-oss-1.0.0.jar`文件,然后单击链接以下载该文件。
4. 安装`dp-oss-1.0.0.jar`: 在下载`dp-oss-1.0.0.jar`文件后,您可以使用`mvn install:install-file`命令将该文件安装到本地Maven仓库中。示例命令如下:
```sh
mvn install:install-file -DgroupId=com.example -DartifactId=dp-oss -Dversion=1.0.0 -Dfile=/path/to/dp-oss-1.0.0.jar -Dpackaging=jar
其中:
-DgroupId
和-DartifactId
标志指定 group id 和 artifact id。这两个标志会组合形成坐标。-Dversion
标志指定版本号。-Dfile
标志指定要安装的文件路径。-Dpackaging
标志指定文件的类型,这里指定为“jar”。
按照上述步骤下载并安装dp-oss-1.0.0.jar
文件,然后重新运行您的Maven构建。这样,maven-install-plugin 插件就能够找到 dp-oss-1.0.0.jar
文件,然后安装到本地Maven仓库中。
maven查看日志 + 删除(指定)依赖
日志
Maven不提供自己的日志查看工具,但您可以使用您喜欢的日志查看工具查看Maven生成的日志。例如,在Linux或MacOS上,您可以使用 less
和 tail
两个命令来查看Maven的日志:
1 |
|
在Windows上,您可以使用 more
命令来查看Maven的日志:
1 |
|
关于如何删除本地不需要的jar包,您可以手动删除本地Maven仓库中的相关文件。Maven仓库默认存储在 ~/.m2/repository
目录下。您可以浏览到相关的 jar 文件并手动删除它们。
如果您想要从Maven仓库中删除未使用的依赖项,可以使用 versions:purge-local-repository
命令。该命令会检查本地Maven仓库中的所有依赖项,删除未使用的依赖项。该命令可以通过以下方式执行:
1 |
|
该命令会尝试从本地仓库的 ~/.m2/repository
目录删除本地不需要的依赖项。但是需要注意,如果某些依赖项未正确标记或包含不正确的pom.xml文件,则有可能会删除实际正在使用的依赖项。因此,在执行此操作之前,请仔细检查依赖项的版本,并谨慎删除不需要的依赖项。
avatar
2023/6/2 11:19:43
删除
您可以通过以下命令使用Maven删除指定信息的依赖:
1 |
|
这会删除本地Maven仓库中与 com.example:my-library
匹配的所有依赖项。您可以使用通配符匹配多个依赖项,例如:
1 |
|
这会删除本地Maven仓库中所有以 com.example
开头的依赖项。
您还可以使用 -Dexclude
标志从清单中排除一些依赖项。例如,以下命令会删除 com.example:my-library
,但排除版本 1.0.0
:
1 |
|
请注意,删除本地Maven仓库中的依赖项时,可能会出现其他依赖项依赖于此依赖项的情况,因此请在删除之前仔细分析,并确保不会影响其他依赖项的运行。
maven的 install 安装依赖到本地仓库
备注:需要现在当前目录存在对应的jar包,例如:dp-oss-1.0.0.jar
1 |
|
1 |
|
本地编译项目
安装命令
1 |
|