maven是一个java项目管理工具,深化了ant,但又有自己一整套的项目集成策略。目前的版本是2.0.2。
1.
maven网站 下载maven2,解压缩
2.
配置环境变量:maven_home、path
3.
cmd-> mvn --version 检查是否安装成功 [显示版本号,则说明安装成功]
4.
配置,Maven的配置分为三个层次:
*
- pom.xml:针对某个项目的配置
*
Installation
*
User -针对某个用户的配置
我们首先配置主要是user级别的,主要包括两点:设置本地的资源库和代理服务器[如果需要的话] 在%maven_home%/conf/setting.xml中配置:
<localRepository>d:/repo</localRepository>
<proxy>
<id>proxy1</id>
<active>true</active>
<protocol>http</protocol>
<username></username>
<password></password>
<host>222.136.91.1</host>
<port>80</port>
<nonProxyHosts></nonProxyHosts>
</proxy>
修改之后copy一份到${home}/.m2
5.
建立新的项目
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
*
首先,程序会从远程下载必要的jar包到你的localRepository,即我们刚刚设置的[d:/repo]
*
然后,会在当前目录下面生成my-app文件夹,包括简单的包结构[java,test]和一个HelloWorld程序及测试,以及pom.xml文件。
注意:pom.xml contains the Project Object Model (POM) for this project.The POM is the basic unit of work in Maven。
6.
编译
mvn compile
第一次运行会下载很多jar包,而且机器负荷会很重。运行这个命令需要在pom.xml相同目录下面, 这个编译只编译主程序,不会编译test下面的程序。如果需要单独编译test,请运行:
mvn test-compile
compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下
7.
测试
mvn test
会自动先编译再运行测试
8.
打包
mvn package
打包之前会进行编译,测试
9.
安装
mvn install
会将package之后的jar包copy到
<local-repository>/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.jar
10.
其他
mvn site
注意,还可以:
deploy site
在pom.xml中加入
<distributionManagement>
<site>
<id> website </id>
< url> scp://www.mycompany.com/www/docs/project/ </url>
</site>
</distributionManagement>
当然你需要设置server
mvn site-deploy
mvn clean
mvn idea:idea [为IDE工具idea生成项目文件]
11.
Resource
${basedir}/src/main/resources都会编译到jar文件中,而且该目录下的内容将直接位于jar文件的顶部。
测试用资源文件-> ${basedir}/src/test/resources,引用时如下例:
InputStream is = getClass().getResourceAsStream( "/test.properties" );
文件位于 ${basedir}/src/test/resources/test.properties。
12.
如何filter我们的资源文件
< build >
< resources >
< resource >
< directory > src/main/resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
</ build >
因为原来默认的filter为false所以要加上上面的代码
eg:我们在src/main/resources下面建立application.properties文件
# application.properties
application.name=${pom.name}
application.version=${pom.version}
运行:mvn process-resources 在target/classes下面的application.properties结果为:
# application.properties
application.name=Maven Quick Start Archetype
application.version=1.0-SNAPSHOT
这就是所谓的filter。当然filter还可以用其他的外部文件,不一定来自pom.xml[ ${pom.name} ]以及setting.xml[ ${settings.localRepository }]
e.g src/main/filters/filter.properties:
# filter.properties
my.filter.value=hello!
pom.xml:
< build >
< filters >
< filter > src/main/filters/filter.properties </ filter >
</ filters >
< resources >
< resource >
< directory > src/main/resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
</ build >
# application.properties
application.name=${pom.name}
application.version=${pom.version}
message=${my.filter.value}
这样在运行mvn process-resources 会得到类似的效果,当然我们也可以直接在pom.xml中定义:
< build >
< resources >
< resource >
< directory > src/main/resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
</ build >
< properties >
< my .filter.value > hello </ my.filter.value >
</ properties >
效果同样,这样就不需要外部文件了。另外filter还可以来自系统设置以及可以自定义:
# application.properties
java.version=${java.version}
command.line.prop=${command.line.prop}
13.
jar包依赖
我们在mvn install后在local repo中生成的jar包也可以被其他项目所引用
<dependency>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
注意scope,这里是compile,如果使用junit,scope是test。
举例说明:如果我们的project需要用到log4j包,那么我们可以 先google--"site:www.ibiblio.org maven2 log4j"。Index of /maven2/log4j/log4j 下面有maven-metadata.xml 描述了groupId,artifactId,version等等。获取了这些信息之后,你 就可以在pom.xml中添加依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>compile</scope>
</dependency>
14.
如何发布我的jar包到我的remote repository
你需要在setting.xml中间设置server:
<servers>
<server>
<id>mycompany-repository</id>
<username>jvanzyl</username>
<!-- Default value is ~/.ssh/id_dsa -->
<privateKey>/path/to/identity</privateKey>
<passphrase>my_key_passphrase</passphrase>
</server>
</servers>
然后在pom.xml中设置远程url:
<distributionManagement>
<repository>
<id>mycompany-repository</id>
<name>MyCompany Repository</name>
<url>scp://repository.mycompany.com/repository/maven2</url>
</repository>
</distributionManagement>
1.2. Maven2的Eclipse插件安装和使用
1.2.1. 安装
你可以从http://m2eclipse.codehaus.orgupdate安装Maven2的Eclipse插件,具体 安装步骤请看该网站提供的Flash Demo: http://m2eclipse.codehaus.org/Installing_Maven_2.0_plugin_for_Eclipse.html
1.2.2. 使用
该插件的使用请看该网站提供的Flash Demo: http://m2eclipse.codehaus.org/Maven_2.0_Plugin_for_Eclipse.html
关于openfan项目的Maven操作请参看后续章节。
1.3. 更多的Maven2的参考
*
Maven 网站
*
相关推荐
RFID射频识别技术介绍及简单应用
简单介绍RFID技术及其简单应用,后附简单门禁制作方法和代码
resource 2.0 Resource
UrlResource UrlResource 封装了 java.net.URL,它能够被用来访问任何通过 URL 可以获得的对象,例如:文件、HTTP 对象、FTP 对象等。所有的 URL都有个标准的 String 表示,这些标准前缀可以标识不同的 URL 类型,包括 file:访问文件系统路径,http: 通过HTTP协议访问的资源,ftp: 通过FTP访问的资源等等。 UrlResource 对象可以在 Java 代码中显式地使用 UrlResource 构造函数来创建。但更多的是通过调用带表示路径的
导带、价带
价带是电子的“束缚态”能量区间,决定材料的化学性质;导带是电子的“自由态”能量区间,直接决定材料的导电能力;禁带宽度则是区分金属、半导体与绝缘体的核心参数。通过调控能带结构(如掺杂、应变工程),可设计出具有特定电学和光学特性的功能材料,推动电子信息、能源转换等领域的技术革新。
帮你深入理解OAuth2.0协议
帮你深入理解OAuth2.0协议 1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。豪车一般配备两种钥匙:主钥匙和泊车钥匙。当你到酒店后,只需要将泊车钥匙交给服务生,停车的事情就由服务生去处理。与主钥匙相比,这种泊车钥匙的使用功能是受限制的:它只能启动发动机并让车行驶一段
linux下redhat6.8(理论是都适用)安装oracle12c---详细教程
1、配置yum源 1)、删除Redhat自带的yum: (2)、上传centos的yum包,并按照顺序安装,所需的rpm包通过点击这里获取(放在oracle文件中的centos yum):上传到linux中 进行安装 yum包链接:https://pan.baidu.com/s/1TxciCWEd7d-d4kGoea0L1w 提取码:eufp `` --注意后面两个安装包一起安装 ## 3)、更改系统yum源: 编辑rhel-source.repo文件,将其中的$releas
ChatGPT设置密钥后Codex免手机验证:配置顺序与身份凭证复用机制
API Key 是一种用于身份识别的凭证,其核心原理是通过预配置的密钥替代交互式登录流程。在开发工具中,密钥认证优先级通常高于会话认证,当本地存在有效密钥时,工具会直接复用该凭证,从而减少重复验证环节。这种机制的技术价值在于提升开发效率与配置一致性,尤其适用于多设备切换、CI/CD 流水线及编程辅助工具等场景。以 Codex 为例,在 ChatGPT 界面提前配置 API 密钥后,Codex 启动时可读取持久化存储的密钥,避免触发手机号验证,实现身份凭证的跨入口复用。
maven构建项目(多模块项目)
在eclipse下构建maven项目,该项目由多个子模块组成。 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面 ,什么也不做,直接下一步到Select an Archetype界面。 在这个界面中选择ma
车载以太网网络测试-27【SOME/IP-SD简述】
SOME/IP-SD协议是基于IP的可扩展面向服务中间件中的服务发现协议,是汽车电子和嵌入式系统中实现动态服务发现与通信的核心组件。该协议规范详细说明了协议SOME/IP服务发现(SOME/IP-SD)的格式、消息序列和语义。本文将对SOME/IP-SD协议进行详细介绍。
maven添加子工程_maven创建子项目(适用于多模块管理项目)
在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成。1.创建一个父项目NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面,什么也不做,直接下一步到Select an Archetype界面。在这个界面中...
【ComfyUI报错解决】K采样器 mat1和mat2形状不匹配错误分析与修复 mat1 and mat2 shapes cannot be multiplied (77x2048 and 4096x
如果你在 ComfyUI 里遇到K采样器报错:mat1 和 mat2 shapes cannot be multiplied确认大模型和 LoRA 是否是同一版本(SDXL vs SD1.5,不能混用)。如果用了双 CLIP 加载器,要确认加载的类型和选择的模型类型是否匹配。加载→ 类型选flux加载 SDXL 专用的 clip/t5 → 类型选sdxl避免不同版本模型和 LoRA 混搭,保持一致性。模型+LoRA+CLIP 类型必须保持同一版本,不然就会报错。
windows exe爬虫:exe抓包
在不知情所拦截应用使用的流量时,所以建议用Wireshark。本文利用python代码,实现自动拦截,写入pcap包,并用代码分析流量的协议。这样会在本地目录下生成capture_inbound.pcap,可以用wireshark分析,也可以利用python代码进行分析,如果使用python代码进行分析,需要借助pyshark或者scapy。使用的python WinDivert的包,当然前提也是需要安装Wireshark软件,设置环境变量,并安装pydirvert包。
Maven引入本地jar包
Maven引入本地jar包
论文复现《基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方案》
电力系统暂态电压稳定评估方案 摘要 本研究提出了一种基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方法。通过分析相空间中相邻轨迹的收敛或发散特性,该方法能够提前判别系统稳定性。论文首先阐述了暂态电压稳定机理,详细介绍了最大李雅普诺夫指数的计算方法。针对IEEE-39节点系统,建立了仿真模型并获取不同故障场景下的数据。研究开发了完整的评估程序,包括数据预处理、相空间重构、指数计算等模块,并通过与时域仿真结果的对比验证了方法的准确性。实验结果表明,该方法能够快速有效地评估电力系统的暂态电压稳定性,为系统安全运
关于Spring框架使用Resource注解出现的空指针问题
提供了一个解决Resource注解对象为空的解决方案
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
maven插件之maven-resource-plugin
maven插件-maven-resource-plugin 使用 指定资源目录 Filtering include and exclude 包括与排除文件目录 Binary filtering(二进制文件过滤) maven插件-maven-resource-plugin maven resource plugin将复制的工程的resources下的文件到输出目录。一般的maven工程都...
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
Maven打包时引入本地jar包
背景 开发的时用到的jar包可能在私服中找不到,需在下载到本地,然后在编译器Eclipse或者IDEA中引入本地jar包,这样在本地开发是OK的,但是linux服务器通过Maven打包的时候会提示异常找不到对应的类。这是需要在我们的pom.xml文件添加点配置了。 落地 开发支付宝沙箱支付时,需要引入本地jar包,我把jar存放的项目中的/src/main/resources/lib 下 1.打...
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
Maven中无法识别Resource注解
最近学习spring时发现Maven中无法识别Resource注解,原因是没有导入javax.annotation包,在pom.xml中加入以下内容即可。 <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr25...
基于Maven管理的SpringBoot项目引入外部Jar包
本篇文章主要是为了自己学习记录,便于以后查询,所以直接上代码。 这里需要注意三个地方: 1.dependencies标签 便签引入的jar包scope为system,并且增加systemPath的标签,这个标签的${project.basedir}代表当前工程路径。 2.build标签 在SpringBoot项目中,打成的jar包中,maven依赖包全部在BOOT-INF\lib下,所以...
使用 Maven Resource Profile 和 Filtering 打各种环境的包
每个项目都会有多套运行环境(开发,测试,正式等等),不同的环境配置也不尽相同(如jdbc.url),借助Jenkins和自动部署提供的便利,我们可以把不同环境的配置文件单独抽离出来,打完包后用对应环境的配置文件替换打包后的文件,其实maven已经给我们提供了替换方案:profile + filtering Filtering Filtering 是 maven 的 resource 插件 提供的功能,作用是用环境变量、pom文件里定义的属性和指定配置文件里的属性替换属性(*.properties)文件里的.
Maven 关于打包插件与Resource中exclude的问题
在写工程的时候很多资源文件会放到Maven的Resource文件夹下。像Log4j这种配置文件,打包的时候我们不能将其拷贝到jar包中。怎么办呢?使用Maven的JAR插件吧。讲JAR插件之前先说说Resource标签。大家应该都知道这个标签使用来拷贝资源文件的。那个directory是用来配置资源文件的位置的。它是基于工程目录的,如果你不放心可以在前满加入${basedir}占位符。坑的是下面的e
maven有关resource资源的管理和访问
这里所说的resource主要说的是pom里面build下的设置项。 可以参考maven官网文档:http://maven.apache.org/pom.html#Resources,有好心人把它给翻译了一遍http://blog.csdn.net/tomato__/article/details/13625497 我这里主要的设置如下: package D
总结从maven下resource文件夹读取文件的方法
总结从maven下resource文件夹读取文件的方法
Jenkins部署maven项目找不到jar包解决
Jenkins部署maven项目找不到jar包解决前置条件环境部署问题描述解决方案 前置条件 环境部署 1. centos搭建java部署环境 2. jenkins环境搭建 3. jenkins部署springboot项目 问题描述 在构建springboot项目时,引用了本地jar包,maven仓库无法从相关镜像拉取jar包,导致部署失败。 解决方案 以个人项目的common公共包为例。 将本地jar包通过mavn编译。 install-file -Dfile=本地位置/common.jar -D
maven没有resource文件夹_Maven项目找不到配置文件,target文件夹下没有resource
java.io.IOException: Could not find resource SqlMapConfig.xmlat org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:114)at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.ja...
Maven打包包含本地jar包并同时打入到打包文件中pom配置详解
Maven打包包含本地jar包并同时打入到打包文件中pom配置详解 首先引入本地文件的jar包以及jar路径地址 //引入本地jar包地址 <dependency> <groupId>j-interop</groupId> <artifactId>j-interop<...
maven没有resource文件夹_使用Maven时经常出现的问题总结
问题总结1问题描述: maven下载安装,并配置到tomcat产生Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resource解决方法:如果还是不行,可以打开并修改conf/settings.xml,添加如下内容: F:mavenepository ...
1万+



被折叠的 条评论
为什么被折叠?



