关于maven的一些记录

一、关于引入配置文件的问题。

如果在maven中引入配置文件,则需要有两个部分组成。1.在pom.xml中指定配置文件。2.在maven的setting.xml中指定

如在pom.xml中引入开发环境和正式环境的配置文件:

<profiles>
        <profile>
            <id>common</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <web.work.model>normal</web.work.model>
                <config.root>/opt/pay/config/basis/ifp</config.root>
                <project.build.sourceEncoding>
                    UTF-8
                </project.build.sourceEncoding>
            </properties>
        </profile>
        <profile>
            <id>local</id>
            <activation>
                <property>
                    <name>env</name>
                    <value>local</value>
                </property>
            </activation>
            <properties>
                <web.work.model>local</web.work.model>
                <config.root>${env_conf_home}/base/basis/ifp</config.root>
                <project.build.sourceEncoding>
                    UTF-8
                </project.build.sourceEncoding>
            </properties>
        </profile>
    </profiles>

第一个为正式环境,默认的会是用到。第二个用的是开发环境。

在maven的setting.xml中指定用那个环境,如下:

<profiles>
        <profile>
            <id>local</id>

             <properties>
                <env_conf_home>E:/loan/codes/config</env_conf_home>
            </properties>
        </profile>
    </profiles>

<activeProfiles>
        <activeProfile>local</activeProfile>
</activeProfiles>

可以确定的是用local。

${env_conf_home}也是在setting.xml中配置的。

二、在pom.xml中定义变量。如

        <properties>

     <abc.version>1.0.0</abc.version>

</properties>

在pom.xml及子pom.xml中就可以引用这个版本号了。通过

${abc.version}

三、父pom.xml及子pom.xml的关系

<packaging>pom</packaging>

如父pom.xml为:

<groupId>com.yhp.abc</groupId>
<artifactId>abc-parent</artifactId>
<version>3.0.0-SNAPSHOT</version>

<modules>
<module>def</module>
</modules>

def为主pom.xml下的文件夹,并到其下面中子pom.xml文件。

def

pom.xml

则子pom.xml对父pom.xml的引用方法为:

<parent>

<groupId>com.yhp.abc</groupId>
<artifactId>abc-parent</artifactId>
<version>3.0.0-SNAPSHOT</version>

</parent>

四、父pom.xml及子pom.xml的继承关系

如果在父pom.xml中定义如下:

<dependencies>
            <!--spring frame -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            .......
</dependencies>

则子pom.xml会继承所用<dependencies>的依赖。

如果添加上<dependencyManagement>,如

<dependencyManagement>
    <dependencies>
            <!--spring frame -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            .......
     </dependencies>
</dependencyManagement>

则子pom.xml不会继承。如果需要用,则需要添加上。如下:

<dependencies>
            <!--spring frame -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
            .......
</dependencies>

但是不需要加上版本号。他会继承父pom.xml中的版本。这样可以对版本好进行统一管理。

五、关于scope

<scope>provided</scope>或<scope>compile</scope>。

默认为compile即,此jar在编译测试以及容器中都需要此jar。如果是provided时,只是在编译,测试的时候用到此jar,在运行的时候,容器中已经由此jar包了。如tomcat自带的jar中已经包含了这个jar

posted on 2015-09-10 16:34  灵之海  阅读(216)  评论(0编辑  收藏  举报