使用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接口部分

  1. 编写一个client.pom.xml文件

  2. 增加如下配置

<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实用总结的更多相关文章

  1. Maven 实用命令和技巧

    1.Jar冲突排查 maven dependency:tree 人工排除

  2. maven 实用的命令

    查询某个pom的来源: com.taobao.langyan langyan-client 命令: mvn dependency:tree -Dverbose -Dincludes=com.aliba ...

  3. Maven在Eclipse中的实用小技巧

    前言     我们在开发的工程中很多都是Maven项目,这样更加便于我们jar包的管理.而我们一般使用的IDE都是Eclipse,由于我们在日常的开发过程中会经常要用到一些Maven的操作,所以我今天 ...

  4. maven 高级玩法

    maven 高级玩法 标签(空格分隔): maven 实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean ...

  5. Java架构师必会的技能

    Java架构师必会的技能 我把它分为了五大专题 工程化专题 工程化专题 git git安装使用 git日常使用:fetch/pull/push/revert/rebase git分支管理git flo ...

  6. 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)

    一.前言         早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档.发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基 ...

  7. 实用maven笔记二-信息&依赖管理

    目前我经历的公司的主要项目管理工具都是maven,maven除了是一个实用的构建工具外,也是一个功能强大的项目管理工具.其管理功能分为信息管理和依赖管理.通过pom.xml文件实现. 信息管理 信息管 ...

  8. maven 简单实用教程

    1. Maven介绍 1.1. 简介 java编写的用于构建系统的自动化工具. 目前版本是2.0.9,注意maven2和maven1有很大区别,阅读第三方文档时需要区分版本. 1.2. Maven资源 ...

  9. java maven quartz exampe 实用指南

    pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

随机推荐

  1. python 面试题(1)

    好用简洁的大数据技术:python.hadoop.R 慢慢学习,随时分享 1.什么是Python?使用Python有什么好处? Python是一种编程语言,它有对象.模块.线程.异常处理和自动内存管理 ...

  2. LightOJ 1137 - Expanding Rods 基础计算几何

    http://www.lightoj.com/volume_showproblem.php?problem=1137 题意:一根长度为L的杆热膨胀为L',左端点到右端点间距离不变,且膨胀后的杆的弧为圆 ...

  3. Confluence代码块(Code Block)宏

    有时候现在wiki上插入代码,如何让代码高亮,变的有颜色,下面这篇文章可能会帮助你,先看下django代码高亮效果图 代码块(Code Block)宏允许你在 Confluence 页面中显示代码,并 ...

  4. HDFS error

    错误信息描述: HDFS error: could only be replicated to 0 nodes, instead of 1;以及由此衍生出来的种种奇葩问题(具体的错误信息见后面),下面 ...

  5. 「6月雅礼集训 2017 Day10」quote

    [题目大意] 一个合法的引号序列是空串:如果引号序列合法,那么在两边加上同一个引号也合法:或是把两个合法的引号序列拼起来也是合法的. 求长度为$n$,字符集大小为$k$的合法引号序列的个数.多组数据. ...

  6. 21、python操作redis的模块?

    什么是redis? redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...

  7. Angular2.0 基础: Form

    对于Angular2.0 的Form表单中的隐藏和验证,个人觉得还是挺有意思的. 1.通过ngModel 跟踪修改状态与验证. 在表单中使用 ngModel 可以获得更多的控制权,包括一些常用的验证. ...

  8. url编码模块

    use LWP::SImple; use URI::Escape; encoded_string = uri_escape(raw_string); get(encoded_string);

  9. Linux typeof【转】

    转自:http://blog.csdn.net/xiaofeng_yan/article/details/5248633 今天偶然又看到了typeof这个东西,只知道它大概是返回变量的类型,后来上网查 ...

  10. java===java基础学习(12)---方法的重写和重载

    覆盖 / 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也 ...