上级pom定义module(parent)
ABCCommon
ABCCore
ABCTools
注意:ABCCommon是module的目录名
module
com.abc.product1
abc-product1
1.0.0-SNAPSHOT
abc-my-module2
jar
parent与module相关联起来,继承关系就设定完毕,所有父工程的配置内容都会自动在子工程中生效,除非子工程有相同的配置覆盖
是另外一种复用的方式,加入一个 type 为 pom 的依赖即可
org.sonatype.mavenbook
persistence-deps
1.0
pom
但是无论是父项目还是引用项目,这些工程都必须用 mvn install 或者 mvn deploy 安装到本地库才行,否则会报告依赖没有找到,eclipse编译时候也会出错
注意:复用过程中,父项目的pom中可以定义 dependencyManagement 节点,其中存放依赖关系,但是这个依赖关系只是定义,不会真的产生效果,如果子项目想要使用这个依赖关系,可以在本身的 dependency 中添加一个简化的引用
org.springframework
spring
避免版本号满天飞
...
hello
...
${my.filter.value}得到对应的hello值
设置exclusion即可
org.hibernate
hibernate
3.2.5.ga
javax.transaction
jta
加入一个特殊的依赖关系,使用system类型
com.abc
my-tools
2.5.0
jar
system
注:但是要记住,发布的时候不会复制这个jar。需要手工配置,而且其他project依赖这个project的时候,会报告警告
maven-assembly-plugin
jar-with-dependencies
maven本身在发布的时候,可以发布单纯的jar,也可以同时发布xxx-tests.jar和xxx-javadoc.jar(大家经常在repository中可以看到类似的东西)。我们自己的项目A要同时输出test.jar可以做如下的设置
org.apache.maven.plugins
maven-jar-plugin
test-jar
然后在其他需要引用的工程B中做如下的dependency设置
com.abc.XXX
工程A
${project.version}
test-jar
test
...
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/development_db
dev_user
s3cr3tw0rd
...
src/main/resources
true
...
production
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@proddb01:1521:PROD
prod_user
s00p3rs3cr3t
① -Dmaven.test.skip=true 或者 -DskipTests=true
② 另外一种是给surefire插件增加参数
org.apache.maven.plugins
maven-surefire-plugin
2.8
true
-Dtest=MyTest 即可,其中MyTest是所需要运行的单元测试用例名称
参考对应插件的帮助信息
...
maven-compiler-plugin
1.5
...
target
src
js/scripts
test
bin
bin
其他的可能自以为不是很重要,摘录自
https://www.cnblogs.com/BigTall/archive/2011/03/23/1993253.html