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 ...
随机推荐
- centos中mysql的安装
一:前沿 过完年了,花了不少钱啊!本来还打算买电脑的了,结果这个事情还是的延期啊!苍天啊!刚刚也看了下,一台苹果也大概是1w左右!买吧!boy!别犹豫了吧!好吧现在来说说我自己的工作吧!现在过完年到公 ...
- Google 字体API的基本使用
一.链接CSS文件直接使用: 基本上你链接直接在Google.com上的CSS文件.通过网址参数,你可以选择你想要的字体,以及这些字体的变化. <link rel="styleshee ...
- gradle web项目启动报错: java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
严重: Error configuring application listener of class org.springframework.web.util.IntrospectorCleanup ...
- Grunt构建工具
Grunt是javascript的构建工具,对于需要反复重复的任务,例如压缩(minification).编译.单元测试.linting等,自动化工具可以简化工作.Grunt生态系统非常庞大.你可以利 ...
- 类图(Class Diagram)
类图(Class Diagram): 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 类一般由三部分组成: 类名(Class):每个类都必须 ...
- python进行机器学习(五)之模型打分
一.画出模型的残差值分布情况 #!/usr/bin/python import pandas as pd import numpy as np import csv as csv import mat ...
- mysql执行load_fle返回NULL的解决方法
mysql 版本: 5.7.18 问题: 在执行mysql 函数load_file时,该函数将加载指定文件的内容,存储至相应字段.如: SELECT LOAD_FILE("D:\aa.txt ...
- linux 3389连接工具Rdesktop
简单使用 工作机换成战斗机了,改用ubuntu,原来的windows7上东西笔记多,还不想重装.用rdesktop来远程连接windows: sudo apt-get install rdesktop ...
- Linux中断(interrupt)子系统之二:arch相关的硬件封装层【转】
转自:http://blog.csdn.net/droidphone/article/details/7467436 Linux的通用中断子系统的一个设计原则就是把底层的硬件实现尽可能地隐藏起来,使得 ...
- Linux进程调度与源码分析(三)——do_fork()的实现原理
用户层的fork(),vfork(),clone()API函数在执行时,会触发系统调用完成从用户态陷入到内核态的过程,而上述函数的系统调用,最终实现都是通过内核函数do_fork()完成,本篇着重分析 ...