maven 多模块项目及maven插件

1、创建多模块maven工程

1、创建maven project
2、修改为pom
3、删除src下所有文件
4、右击该工程添加maven model项目即可

 

2、父工程pom配置
非公共

       <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.trunkbow</groupId>
                <artifactId>comm-sign</artifactId>
                <version>${comm-sign.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

 

公共

<dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
</dependencies>

 

本地jar包依赖注意不会被打包进去

        <dependency>
            <groupId>cn.guoyukun.jdbc</groupId>
            <artifactId>db2jcc</artifactId>
            <version>8.2</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/db2jcc-8.2.jar</systemPath>
        </dependency>

 

exclusions 排除jar包

            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-tools</artifactId>
                <version>${velocity-tools.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.struts</groupId>
                        <artifactId>struts-tiles</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

3、生成帮助文档

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
            <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

 4、测试插件指定编码及是否忽略test

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                    <forkMode>once</forkMode>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                </configuration>
            </plugin>

 

5、生成可运行jar包插件

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>appassembler-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>assemble</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
                    <copyConfigurationDirectory>true</copyConfigurationDirectory>
                    <assembleDirectory>${project.build.directory}/appassembler/${project.artifactId}</assembleDirectory>
                    <programs>
                        <program>
                            <mainClass>com.trunkbow.makefile.main.Server</mainClass>
                        </program>
                    </programs>
                </configuration>
            </plugin>

 6、生成目标文件

xx.jar

xx-javadoc.jar

xx-source.jar

xx-test.jar

<java.version>1.6</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<build> <finalName>${project.artifactId}</finalName> xx.jar <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target>
            <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> xx-source.jar <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> xx-javadoc.jar <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> xx-test.jar <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

 7、集成tomcat,使用maven build中

<tomcat7Version>7.0.67</tomcat7Version>

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-jasper-el</artifactId>
                        <version>${tomcat7Version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-el-api</artifactId>
                        <version>${tomcat7Version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <uriEncoding>utf-8</uriEncoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <port>9090</port>
                    <path>/mg</path>
                    <uriEncoding>UTF-8</uriEncoding>
                    <finalName>mgr</finalName>
                    <server>tomcat7</server>
                </configuration>
            </plugin>

 tomcat7:run 或者tomcat6:run可以将maven的web应用在tomcat6/7里面运行 ,eclipse Indigo 版本默认tomcat:run是用tomcat6

tomcat7:run 

tomcat6

       <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat6-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>8883</port>
            <uriEncoding>UTF-8</uriEncoding>
            <path>/</path>
          </configuration>
       </plugin>

 

8、集成jetty

<plugin>  
            <groupId>org.mortbay.jetty</groupId>  
            <artifactId>jetty-maven-plugin</artifactId>  
            <version>8.1.13.v20130916</version>  
            <configuration>  
                <scanIntervalSecond>10</scanIntervalSecond>  
                <webApp>  
                    <contextPath>/test</contextPath>  
                </webApp>  
                <connectors>  
                    <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">  
                        <port>8787</port>  
                        <maxIdleTime>60000</maxIdleTime>  
                    </connector>  
                </connectors>  
            </configuration>  
        </plugin> 

 

其中scanIntervalSecond表示扫描项目变更的时间间隔,默认为0,表示不扫描。

ContextPath表示项目的访问路径,比如此:http://localhost:8787/test/

port表示绑定的端口号,默认监听的端口是8080

9、在应用程序用使用多个存储库

<repositories>    
    <repository>      
        <id>Ibiblio</id>      
        <name>Ibiblio</name>      
        <url>http://www.ibiblio.org/maven/</url>    
    </repository>    
    <repository>      
        <id>PlanetMirror</id>      
        <name>Planet Mirror</name>      
        <url>http://public.planetmirror.com/pub/maven/</url>    
    </repository>  
</repositories>

 10、将应用的依赖jar包打包到一个可执行的jar中

       <plugin>
                   <artifactId> maven-assembly-plugin </artifactId>
                   <configuration>
                        <descriptorRefs>
                             <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                             <manifest>
                                  <mainClass>com.cetc.di.App</mainClass>
                             </manifest>
                        </archive>
                   </configuration>
                   <executions>
                        <execution>
                             <id>make-assembly</id>
                             <phase>package</phase>
                             <goals>
                                  <goal>single</goal>
                             </goals>
                        </execution>
                   </executions>
              </plugin>

 

posted @ 2015-07-16 12:16  W&L  阅读(2158)  评论(0)    收藏  举报