maven的project与子module

2016-12-18 22:28:00
admin
原创 1969
摘要:maven的project与子module

一、maven的project与子module

1 父工程必须是<packaging>pom</packaging>。

module继承了父工程定义的版本、属性、依赖。

3 module定义的版本、属性、依赖优先级高(属性、低高版本依赖都测试过)。

4 需要在project下面构建,所有module会自动构建,构建顺序自动计算;如果在module下面构建,存在module依赖时会报错

5 web模块依赖的模块会打成jar包置于WEB-INF\lib下面。


安装本地依赖(工程、jar):

mvn install,安装本地工程

mvn install:install-file -Dfile=jmxtools.jar -DgroupId=com.sun.jmdk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar

删除本地安装依赖(推荐1):

1 直接进入本地文件夹进行删除

2 mvn dependency:purge-local-repository -DreResolve=false,删除所有本地依赖
3 mvn build-helper:remove-project-artifact,删除指定工程依赖


模块间依赖:

父pom指定哪些子模块可以被依赖

  <dependencyManagement>
  <dependencies>
  <dependency>
  <groupId>com.webank</groupId>
  <artifactId>pch1</artifactId>
  <version>${version}</version>
  </dependency>
  </dependencies>
  </dependencyManagement>

子模块直接引入需要依赖的其它模块

  <dependencies>
  <dependency>
  <groupId>com.webank</groupId>
  <artifactId>pch1</artifactId>
  </dependency>
  </dependencies>


打包:

jar包:所有资源一起打包,包括配置文件。

war包:所有资源一起打包,包括配置文件,包括依赖jar包。


打包资源:

1 pom不指定resources或者resources不存在子元素,则默认打包${basedir}/src/main/resources。

targetPath是jar包文件里面的路径。

excludes排除优先级高,跟通配符没关系。

<resources>
   <resource>
    <targetPath>META-INF</targetPath>
       <directory>${basedir}/src/main/java</directory>
       <includes>
           <include>**/*.xml</include>
           <include>**/*.properties</include>
       </includes>
       <excludes>
        <exclude>config.properties</exclude>
       </excludes>
   </resource>
   <resource>
       <directory>${basedir}/src/main/resources</directory>
   </resource>
</resources>

发表评论
评论通过审核之后才会显示。