Maven配置

Maven项目搭建与配置

1.1              Maven环境搭建

1.1.1  本地Maven环境搭建

1.1.1.1 将 解压,如下图

1.1.1.2 并创建一个名称叫repository的文件夹(仓库)
1.1.1.3 修改conf下的settings.xml文件

 

<localRepository>C:\working\software\repository</localRepository>

 

注意:一定要在当前的环境变量中添加MAVEN_HOME、Path

 

 

1.1.2  Eclipse集成maven

1.1.2.1 Eclipse中默认已经集成了maven插件,默认不使用本地的,添加我们本地的maven如下图:

 

1.1.2.2 可以在maven-repositories视图中查看本地仓库

1.1.2.3 重建索引,可以让我们在后续pom.xml文件中通过坐标导入jar包

 

 

1.1.3  搭建maven工程

1.1.3.1 创建一个maven父工程bos-parent

1.1.3.2 配置pom.xml

         <!--通过属性定义指定jar的版本 -->

         <properties>

                   <spring.version>4.2.4.RELEASE</spring.version>

                   <hibernate.version>5.0.7.Final</hibernate.version>

                   <struts2.version>2.3.24</struts2.version>

                   <slf4j.version>1.6.6</slf4j.version>

                   <log4j.version>1.2.12</log4j.version>

                   <shiro.version>1.2.3</shiro.version>

         </properties>

 

         <dependencies>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-context</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-context-support</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-web</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-orm</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-beans</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-core</artifactId>

                            <version>${spring.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.aspectj</groupId>

                            <artifactId>aspectjweaver</artifactId>

                            <version>1.7.4</version>

                   </dependency>

 

                   <!--struts2 begin -->

                   <dependency>

                            <groupId>org.apache.struts</groupId>

                            <artifactId>struts2-core</artifactId>

                            <version>${struts2.version}</version>

                            <!--排除传递的依赖 -->

                            <exclusions>

                                     <exclusion>

                                               <artifactId>javassist</artifactId>

                                               <groupId>javassist</groupId>

                                     </exclusion>

                            </exclusions>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.struts</groupId>

                            <artifactId>struts2-spring-plugin</artifactId>

                            <version>${struts2.version}</version>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.struts</groupId>

                            <artifactId>struts2-convention-plugin</artifactId>

                            <version>${struts2.version}</version>

                   </dependency>

                   <!--struts2 end -->

 

                   <!--hibernate begin -->

                   <dependency>

                            <groupId>org.hibernate</groupId>

                            <artifactId>hibernate-core</artifactId>

                            <version>${hibernate.version}</version>

                   </dependency>

                   <!--hibernate end -->

 

                   <!--log start -->

                   <dependency>

                            <groupId>log4j</groupId>

                            <artifactId>log4j</artifactId>

                            <version>${log4j.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-api</artifactId>

                            <version>${slf4j.version}</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-log4j12</artifactId>

                            <version>${slf4j.version}</version>

                   </dependency>

                   <!--log end -->

                   <dependency>

                            <groupId>org.apache.poi</groupId>

                            <artifactId>poi-ooxml</artifactId>

                            <version>3.11</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.apache.poi</groupId>

                            <artifactId>poi</artifactId>

                            <version>3.11</version>

                   </dependency>

 

                   <dependency>

                            <groupId>org.apache.cxf</groupId>

                            <artifactId>cxf-rt-frontend-jaxws</artifactId>

                            <version>3.0.1</version>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.cxf</groupId>

                            <artifactId>cxf-rt-transports-http</artifactId>

                            <version>3.0.1</version>

                   </dependency>

                   <dependency>

                            <groupId>junit</groupId>

                            <artifactId>junit</artifactId>

                            <version>4.10</version>

                            <scope>test</scope>

                   </dependency>

 

                   <!--加入servlet和jsp的依赖 -->

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>servlet-api</artifactId>

                            <version>2.5</version>

                            <scope>provided</scope>

                   </dependency>

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>jsp-api</artifactId>

                            <version>2.0</version>

                            <scope>provided</scope>

                   </dependency>

 

                   <!--引入pinyin4J的依赖 -->

                   <dependency>

                            <groupId>com.belerweb</groupId>

                            <artifactId>pinyin4j</artifactId>

                            <version>2.5.0</version>

                   </dependency>

 

                   <!--引入crm的依赖 -->

                   <dependency>

                            <groupId>cn.itcast.crm</groupId>

                            <artifactId>crm2</artifactId>

                            <version>0.0.1-SNAPSHOT</version>

                   </dependency>

                   <!--引入json-lib的依赖 -->

                   <dependency>

                            <groupId>net.sf.json-lib</groupId>

                            <artifactId>json-lib</artifactId>

                            <version>2.4</version>

                   </dependency>

 

                   <!--引入c3p0jar包 -->

                   <dependency>

                            <groupId>c3p0</groupId>

                            <artifactId>c3p0</artifactId>

                            <version>0.9.1.2</version>

                   </dependency>

 

                   <!--引入ehcache的依赖 -->

                   <dependency>

                            <groupId>net.sf.ehcache</groupId>

                            <artifactId>ehcache-core</artifactId>

                            <version>2.6.6</version>

                   </dependency>

                   <!--引入shiro框架的依赖 -->

                   <dependency>

                            <groupId>org.apache.shiro</groupId>

                            <artifactId>shiro-all</artifactId>

                            <version>1.2.2</version>

                   </dependency>

                   <!--引入MySQL数据库驱动依赖 -->

                   <dependency>

                            <groupId>mysql</groupId>

                            <artifactId>mysql-connector-java</artifactId>

                            <version>5.1.32</version>

                   </dependency>

                   <dependency>

                            <groupId>org.quartz-scheduler</groupId>

                            <artifactId>quartz</artifactId>

                            <version>2.2.3</version>

                   </dependency>

                   <dependency>

                            <groupId>org.quartz-scheduler</groupId>

                            <artifactId>quartz-jobs</artifactId>

                            <version>2.2.3</version>

                   </dependency>

                   <dependency>

                            <groupId>javax.mail</groupId>

                            <artifactId>mail</artifactId>

                            <version>1.4</version>

                   </dependency>

         </dependencies>

 

         <build>

                   <!--插件 -->

                   <plugins>

                            <plugin>

                                     <groupId>org.apache.maven.plugins</groupId>

                                     <artifactId>maven-resources-plugin</artifactId>

                                     <version>2.5</version>

                            </plugin>

                            <plugin>

                                     <groupId>org.apache.maven.plugins</groupId>

                                     <artifactId>maven-compiler-plugin</artifactId>

                                     <version>2.3.2</version>

                                     <configuration>

                                               <source>1.7</source>

                                               <target>1.7</target>

                                     </configuration>

                            </plugin>

                            <!--引入tomcat插件 -->

                            <plugin>

                                     <groupId>org.apache.tomcat.maven</groupId>

                                     <artifactId>tomcat7-maven-plugin</artifactId>

                                     <version>2.2</version>

                                     <configuration>

                                               <uriEncoding>UTF-8</uriEncoding>

                                               <path>/bos</path>

                                               <port>8888</port>

                                     </configuration>

                            </plugin>

                   </plugins>

                   <resources>   

         <resource>   

             <directory>src/main/java</directory>   

             <includes>   

                 <include>**/*.hbm.xml</include>   

             </includes>   

         </resource>   

         <resource>   

             <directory>src/main/resources</directory>   

             <includes>   

                 <include>**/*.xml</include>   

                 <include>**/*.properties</include>   

             </includes>   

         </resource>   

     </resources>

         </build>

1.1.3.3 创建子工程bos-domain,继承bos-parent父工程

在父工程bos-parent上右键创建子工程如下图

1.1.3.4 创建一个子工程bos-dao,继承bos-parent

在父工程bos-parent上右键创建子工程如下图

1.1.3.5 创建子工程bos-service,继承bos-parent

在父工程bos-parent上右键创建子工程如下图

 

1.1.3.6 创建子工程bos-web,是一个war工程,继承bos-parent

在父工程bos-parent上右键创建子工程如下图

解决报错:

Bos-web工程右键

1.1.3.7 创建子工程bos-utils,是一个jar工程,继承bos-parent

在父工程bos-parent上右键创建子工程如下图

1.1.3.8 配置web.xml文件

  <filter>

       <filter-name>openSessionInView</filter-name>

       <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>

  </filter>

  <filter-mapping>

       <filter-name>openSessionInView</filter-name>

       <url-pattern>/*</url-pattern>

  </filter-mapping>

  <context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>classpath:applicationContext.xml</param-value>

  </context-param>   

  <listener>

       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

  <filter>

       <filter-name>struts2</filter-name>

       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  <filter-mapping>

       <filter-name>struts2</filter-name>

       <url-pattern>/*</url-pattern>

       <dispatcher>REQUEST</dispatcher>

       <dispatcher>FORWARD</dispatcher>

  </filter-mapping>

 

1.1.3.9 在bos-web子工程中配置struts.xml

<?xmlversion="1.0" encoding="UTF-8"?>

<!DOCTYPE strutsPUBLIC

    "-//Apache Software Foundation//DTDStruts Configuration 2.3//EN"

   "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

         <constantname="struts.devMode" value="false" />

         <packagename="basicstruts2" extends="struts-default">

 

                   //默认继承,采用的是execute方法,直接返回的是success

 

                   <actionname="page_*_*">

                            <resulttype="dispatcher">/WEB-INF/pages/{1}/{2}.jsp</result>

                   </action>

         </package>

</struts>

 

1.1.3.10   配置log4j.properties

### direct logmessages to stdout ###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.err

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

 

### direct messages tofile mylog.log ###

log4j.appender.file=org.apache.log4j.FileAppender

log4j.appender.file.File=d:/mylog.log

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

 

### set log levels -for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=info, stdout

 

1.1.3.11   在bos-web子工程中创建spring的配置文件applicationContext.xml

         <bean id="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource">

                   <property name="driverClass"value="com.mysql.jdbc.Driver"/>

                   <property name="jdbcUrl"value="jdbc:mysql:///bos"/>

                   <property name="user"value="bosuser"/>

                   <property name="password"value="123"/>

         </bean>

         <bean id="sessionFactory"class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">

                   <property name="dataSource"ref="dataSource"/>

                   <property name="hibernateProperties">

                            <props>

                                     <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>

                                     <prop key="hibernate.hbm2ddl.auto">update</prop>

                                     <prop key="hibernate.show_sql">true</prop>

                                     <prop key="hibernate.format_sql">true</prop>

                            </props>

                   </property>

                   <property name="mappingDirectoryLocations">

                            <list>

                                     <value>classpath:cn/itcast/bos/domain</value>

                            </list>

                   </property>

         </bean>

         <bean id="tranactionManager"class="org.springframework.orm.hibernate5.HibernateTransactionManager">

                   <property name="sessionFactory"ref="sessionFactory"/>

         </bean>

         <context:component-scan base-package="cn.itcast.bos"/>

         <context:annotation-config/>

         <tx:annotation-driven transaction-manager="tranactionManager"/>

 

1.1.3.12   创建子项目中的目录结构

 

1.1.3.13   在bos-web子工程中提供项目所需的资源文件

1.1.3.14   启动maven工程前注意事项

4个子工程之间要通过pom.xml添加依赖关系

 

问题:下图配置的目的?

 

改成mappingDirectoryLocations这个配置  Clean-install-报错?

方式一:(没有配置pom.xml)

方式二:

1.2              SVN版本控制

1.2.1  SVN介绍

subversion(简称svn)是近年来崛起的版本管理软件系统,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。

Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。[1]

Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。某些版本控制系统本身也是软件配置管理系统(SCM),这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。

 

1.2.2  SVN管理代码

1.2.3  Visual SVN Server安装与配置

我们今天介绍的是visualSvn,在资料中有它的安装文件

安装步骤如下:

 

 

SVN的标准目录结构:trunk、branches、tags

trunk是主分支,是日常开发进行的地方。

branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。

tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。

 

1.2.3.1 创建svn用户(bos/123456)

1.2.3.2 浏览器访问svn

1.2.3.3 为bos仓库分配用户权限

 

1.2.3.4 将本地搭建的maven项目导入svn数据仓库

 

 

 

 

 

 

 

 

需求:删除target

第一步:将父工程上传svn

第二步:将svn服务器上的target删除

第三步:eclipse中更新svn

第四步:添加忽略

从svn下载bos项目

Eclipse中切换用户

删除C:\Users\admin\AppData\Roaming\Subversion\auth目录中的所有文件

通过pom修改工程编码修改为utf-8

<!-- 文件拷贝时的编码 --> 

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 

        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 

        <!-- 编译时的编码 --> 

        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值