Maven工具的使用与Nexus私服搭建
Maven常用命令(进到项目目录)
-
mvn clean
清理编译好的文件
-
mvn compile
编译了主目录的文件(test目录的文件不编译)
-
mvn test
编译并运行了test目录的代码
-
mvn package
打包,web项目就是war包
-
mvn install(同时执行了compile,test,package三个命令)
把项目发布到本地仓库
-
mvn tomcat:run(tomcat7为:mvn tomcat7:run)
启动项目
-
deploy
把项目发布到私服
Maven配置Tomcat7
-
Debug
Maven整合ssh
- 依赖struts2-core包
- 依赖struts2-spring-plugin
- 依赖spring-context(依赖冲突spring-bean)
分模块开发
- 新建父项目(打包方式pom):maven project
- 新建子项目(dao和service为jar,web为war):maven module
- 发布到本地仓库(把junit测试注释再发布)
- spring的配置文件注意修改
- web.xml中的spring配置文件加载:classpath*:applicationContext-*.xml
- 子项目打包到本地仓库后,要记得重新建立索引
- junit依赖用<scope>test</scope>,不需要依赖传递
Nexus
-
在maven项目中的pom.xml中配置私服地址
<distributionManagement> <repository> <id>releases</id> <url>http://localhost:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
-
在maven的settings.xml中的**<servers>**中标签配置
<server> <!--GroupId RepositoryId--> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server>
注意:pom.xml这里<id> 和 settings.xml 配置 <id> 对应!
-
deloy命令发布到私服
-
想要从私服下载就要在maven的settings.xml配置profiles在**<profiles>**下配置:
<profile> <!--profile的id--> <id>dev</id> <repositories> <repository> <!--仓库id,repositories可以配置多个仓库,保证id不重复--> <id>nexus</id> <!--仓库地址,即nexus仓库组的地址--> <url>http://localhost:8081/nexus/content/groups/public/</url> <!--是否下载releases构件--> <releases> <enabled>true</enabled> </releases> <!--是否下载snapshots构件--> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 --> <pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 --> <id>public</id> <name>Public Repositories</name> <url>http://localhost:8081/nexus/content/groups/public/</url> </pluginRepository> </pluginRepositories> </profile>
-
激活profile
<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>
注意<activeProfile>要和profile的id相同!