Maven实用总结
使用Maven还是推荐IDEA,以前用eclipse总是喜欢出现乱七八糟的问题,具体错误和解决方案也记不清楚了。
下面总结下IDEA中遇到的问题和解决方法:
与IDEA搭配的相关问题
如何根据模板快速创建Maven项目
在创建过程中,properties属性中增加一个
archetypeCatalog = internal
默认JDK1.5的问题
增加配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
结合Mybatis无法加载配置文件
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
同理还有testResources配置
使用jetty插件运行web项目修改依赖模块无效
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.9</version>
<configuration>
<contextPath>/web-name</contextPath>
<scanTargets>
<scanTarget>src/main/webapp/WEB-INF</scanTarget>
</scanTargets>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8087</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin>
对于多模块项目,如果修改的是依赖模块的类,就要将该模块install一下再运行.
jetty:run虽然不以打包成war的方式运行,但运行前会去编译与解析子项目,当本地库有了子项目的jar依赖就不会报错,并且web加载的依赖是本地库jar包,而不是从依赖模块的编译目录加载类,所以修改了依赖模块的类,如果没有install更新到本地库,web的加载不是更新类。
当然修改本web的类还是没必要在父项目install,因为jetty:run不会打包本web模块的类成jar,而是从本web模块的编译目录来加载类。
只编译api接口部分
编写一个client.pom.xml文件
增加如下配置
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**/user/api/**</include>
</includes>
</configuration>
</plugin>
命令:clean deploy -f client.pom.xml -Dmaven.test.skip=true
windows自动打包脚本
如果svn在内网,nexus部署在外网,没用jenkins的话,可以写一个脚本方便打包
color 02
set project=%~n0
set curdir=%~dp0
set partition=%curdir:~0,1%
cd %curdir:~0,20%
D:
@echo build train-share...
cd devData\common\train-share
call mvn clean deploy -Dmaven.test.skip=true
@echo build train-user-server...
cd ..\..\server\train-user-server
call mvn clean deploy -Dmaven.test.skip=true
call mvn clean deploy -f client.pom.xml -Dmaven.test.skip=true
set nowDate=%date:~0,4%%date:~5,2%%date:~8,2%
echo 开始拷贝jar包至桌面 =================================
if exist "%userprofile%\Desktop\" (
REM 适用于Win7系统
xcopy F:\repo\cn\pxzs\train\train-share\0.0.1-SNAPSHOT\train-share-0.0.1-SNAPSHOT.jar %userprofile%\Desktop\%nowDate% /Y /N
xcopy F:\repo\cn\pxzs\train\train-user-server\0.0.1-SNAPSHOT\train-user-server-0.0.1-SNAPSHOT.jar %userprofile%\Desktop\%nowDate% /Y /N
xcopy F:\repo\cn\pxzs\train\train-user-server-api\0.0.1-SNAPSHOT\train-user-server-api-0.0.1-SNAPSHOT.jar %userprofile%\Desktop\%nowDate% /Y /N
)
echo jar包已经拷贝至桌面 =================================
echo;
pause
为不同环境打包
不同环境下需要构建不同的包 点此查看具体
注意:
maven会自动下载相关依赖,当你发布到服务器上时,要小心那些看不见的依赖包
Maven实用总结的更多相关文章
- Maven 实用命令和技巧
1.Jar冲突排查 maven dependency:tree 人工排除
- maven 实用的命令
查询某个pom的来源: com.taobao.langyan langyan-client 命令: mvn dependency:tree -Dverbose -Dincludes=com.aliba ...
- Maven在Eclipse中的实用小技巧
前言 我们在开发的工程中很多都是Maven项目,这样更加便于我们jar包的管理.而我们一般使用的IDE都是Eclipse,由于我们在日常的开发过程中会经常要用到一些Maven的操作,所以我今天 ...
- maven 高级玩法
maven 高级玩法 标签(空格分隔): maven 实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean ...
- Java架构师必会的技能
Java架构师必会的技能 我把它分为了五大专题 工程化专题 工程化专题 git git安装使用 git日常使用:fetch/pull/push/revert/rebase git分支管理git flo ...
- 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
一.前言 早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档.发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基 ...
- 实用maven笔记二-信息&依赖管理
目前我经历的公司的主要项目管理工具都是maven,maven除了是一个实用的构建工具外,也是一个功能强大的项目管理工具.其管理功能分为信息管理和依赖管理.通过pom.xml文件实现. 信息管理 信息管 ...
- maven 简单实用教程
1. Maven介绍 1.1. 简介 java编写的用于构建系统的自动化工具. 目前版本是2.0.9,注意maven2和maven1有很大区别,阅读第三方文档时需要区分版本. 1.2. Maven资源 ...
- java maven quartz exampe 实用指南
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
随机推荐
- 状压DP的总结
状压dp的标志 ①数据小 ②通过题目所给出的条件以后得到的特征集合小 一:CF259div2 D: 题目大意:保证b[i]中每个数互质,给出a[i],然后求1~n的abs(a[i]-b[i])最小.a ...
- Linux 下访问Windows共享目录
5.安装cifs-utils软件包 # yum install cifs-utils 貌似可以不用安装这个包. 6.在Linux下创建一个挂载点 # mkdir /mnt/Windows 7.挂载W ...
- free命令buff和cache的区别
[root@iz8vb8kca7twx6177bqg0fz ~]# free -h total used free shared b ...
- 【BZOJ4880】排名的战争 [暴力]
排名的战争 Time Limit: 8 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 小Q是一名出色的质检员,他负责质检 ...
- 汕头市队赛SRM 20 T1魔法弹
T1 背景 “主角光环已经不能忍啦!” 被最强控制AP博丽灵梦虐了很长一段时间之后,众人决定联合反抗. 魂魄妖梦:“野怪好像被抢光了?” 十六夜咲夜:“没事,我们人多.” 然后当然是以失败告终了. 八 ...
- Java连接Oracle数据库的三种连接方式
背景: 这两天在学习Oracle数据库,这里就总结下自己上课所学的知识,同时记录下来,方便整理当天所学下的知识,也同时方便日后自己查询. SQL语句的话,这里我就不多讲了,感觉和其他的数据库(MySQ ...
- 重拾Object--(一)初识
Java中的Object类有着特殊的意义,他是所有其它类的父类,查看Object类的源代码,可以发现代码不多,逻辑也很简单. Java所有类的源代码我们都可以在JDK的文件中查看,在JDK下会有一个名 ...
- 特征工程(Feature Engineering)
一.什么是特征工程? "Feature engineering is the process of transforming raw data into features that bett ...
- windows下常用快捷键(转)
原文转自 https://blog.csdn.net/LJFPHP/article/details/78818696 win+E 打开文件管器 win+D ...
- 网络设备之pci_device_id
标准PCI设备都有一个配置寄存器,用来存储各种参数: /* pci设备配置寄存器 */ struct pci_device_id { /* 厂商id,设备id */ __u32 vendor, dev ...