maven打包发布及搭建私服

最近熟悉了下maven打包发布及搭建私服的过程,记录下此次操作过程。 事前准备 首先新建两个项目springMVC和yacolWebApp,springMVC提供facade接口,yacolWebApp为客户端应用 打包过程 在本地是先打包springMVC项目 mvn clean package,默认打包成jar包, 再执行mvn clean install命令,则在/Users/shen/.m2/repository/cn/shen/service-facade/1.0-SNAPSHOT路径下就会出现相应的jar包,然后在别的需要引用其facade接口的项目yacolwebapp中添加pom引用: <dependency> <groupId>cn.shen</groupId> <artifactId>service-facade</artifactId> <version>1.0-SNAPSHOT</version> </dependency> 则可以引用到相应的facade。 搭建私服  可以参照如下文章:https://blog.csdn.net/tanga842428/article/details/71249067 发布项目到私服 参照文章:https://blog.csdn.net/zhenzhen823/article/details/81628602 需要配置私服地址,现上传本地搭建的私服,配置如下: <distributionManagement> <repository> <id>deployRelease</id> <url>http://localhost:8081/nexus/content/repositories/releases</url> <uniqueVersion>true</uniqueVersion> </repository> <snapshotRepository> <id>deploySnapshot</id> <url>http://localhost:8081/nexus/content/repositories/snapshots</url> <uniqueVersion>true</uniqueVersion> </snapshotRepository> </distributionManagement>   此过程中并没有修改setting.xml中的地址,只是修改了项目pom文件的地址信息,因为用户名和密码均是默认密码所以不需要做相应的修改 注意在实际需要将修改的模块发布到私服是使用deploy; 但是使用过程中会报错,比如报401。需要1.保持setting.xml中server标签的id取名需要和pom中的保持一致,2.账户和密码正确。 maven打包发布及搭建私服   注意需要安装相应的插件,配置如下(版本应该有关系): <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> 上传之后即可在私服上查看到响应的项目   遇到的问题 ./nexus start 注意启动时出错,./nexus console 能看到出错信息,遇到过jdk版本的问题,切换一下jdk版本即可(1.8->1.7) jdk切换步骤(前提是安装过多版本的jdk) 打开编辑open ~/.bash_profile 修改export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) 为export JAVA_HOME=$(/usr/libexec/java_home -v 1.7) 保存 source ~/.bash_profile   定义<groupId>cn.shen</groupId>和<artifactId>appdomainservice</artifactId>包的名称时一定要注意重名的问题,一定要注意区分,否则项目名称一样的就会冲突,如springMVC和YacolAppWeb两个项目的<groupId>名都是cn.shen,这会把两个项目的子moudle都搞在一起,这样如果两个项目都用到了domainservice的moudle则会冲突,只能把子moudle的名称做区分。那么就好像是一个项目,所以不同项目之间的groupId一定要不一样
上一篇:设计模式 --外观模式(Facade)


下一篇:第12章外观模式