springcloud- maven 模块化搭建soa项目,以及打包的解决办法
2017-12-15 13:47
489 查看
soa :面向服务架构;
springcloud 就非常适合干这个事,为了以后不再耽误时间,此时开始备份
springcloud- maven 模块化后最大的问题是打包;
在一级pom.xml中一定要注意:
在二级pom.xml中需要指定:是否打包进来
1. maven配置信息:如下配置可满足一个springcloud 项目的基本所需:
需要指定<packaging>pom</packaging>
2.模块化后项目如何依赖:以子项目demo-log依赖其他项目demo-common为例;
2.1 要按pom导入jar报的形式来完成
2.2 demo-common 的pom.xml则不需要指定
3.模块化后项目打包问题:
1.首先demo-common 在IJ中,使用maven install的,生成jar包到知识库
2.其次demo-log 在IJ 中,使用package 打包,这个要在外层的pom.xml中配置
springcloud 就非常适合干这个事,为了以后不再耽误时间,此时开始备份
springcloud- maven 模块化后最大的问题是打包;
在一级pom.xml中一定要注意:
指定该Main Class为全局的唯一入口
在二级pom.xml中需要指定:是否打包进来
<!--被打包项目必须配置项--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--配置为执行--> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>
1. maven配置信息:如下配置可满足一个springcloud 项目的基本所需:
需要指定<packaging>pom</packaging>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>demo</artifactId> <version>1.0-SNAPSHOT</version> <!--将自身定义为pom--> <packaging>pom</packaging> <name>demo</name> <!--定义父类依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> <relativePath/> </parent> <!--构建模块依赖--> <modules> <module>demo-logservice</module> <module>demo-common</module> <module>demo-euraka</module> <module>demo-config</module> <module>demo-log</module> <module>demo-zipkin</module> </modules> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <shadedClassifier>bin</shadedClassifier> </properties> <dependencies> <!--xml解析--> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <!-- kafka包 --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>1.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>0.11.0.0</version> </dependency> <!-- mybatis 包 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </dependency> <!--eureka --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--json --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.35</version> </dependency> <!--commons--> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.6</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.4.2</version> </dependency> <!--jdbc druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.2</version> </dependency> <!--http--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency> <!-- redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.4.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <!--zuul--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> <version>1.3.1.RELEASE</version> </dependency> <dependency> <groupId>com.netflix.zuul</groupId> <artifactId>zuul-core</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>com.netflix.zuul</groupId> <artifactId>zuul-netflix</artifactId> <version>1.3.0</version> </dependency> <!--feign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency> <!--jdbc--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--cxf--> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.1.11</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <!--cloud-dependencies--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> <!--boot-dependencies--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.5.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <!--编译插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <!--打包插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.4.RELEASE</version> <configuration><!-- 指定该Main Class为全局的唯一入口 --> <mainClass>com.demo.Application</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中--> </goals> </execution> </executions> </plugin> <!--单元测试插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </project>
2.模块化后项目如何依赖:以子项目demo-log依赖其他项目demo-common为例;
2.1 要按pom导入jar报的形式来完成
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yuan.demo</groupId> <artifactId>demo-log</artifactId> <version>1.0-SNAPSHOT</version> <!--非常必要的配置项--> <packaging>jar</packaging> <!--父类依赖--> <parent> <artifactId>demo</artifactId> <groupId>com.yuan.demo</groupId> <version>1.0-SNAPSHOT</version> </parent> <dependencies> <!--mongo --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.10.4.RELEASE</version> </dependency> <dependency> <groupId>demo-common</groupId> <artifactId>demo-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <build> <finalName>demolog</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.7.RELEASE</version> </plugin> </plugins> </build> </project>
2.2 demo-common 的pom.xml则不需要指定
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>demo-common</groupId>
<artifactId>demo-common</artifactId>
<version>1.0-SNAPSHOT</version>
<!--父类依赖-->
<parent>
<artifactId>demo</artifactId>
<groupId>com.yuan.demo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<!--被打包项目必须配置项--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--配置为执行--> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>
</project>
3.模块化后项目打包问题:
1.首先demo-common 在IJ中,使用maven install的,生成jar包到知识库
2.其次demo-log 在IJ 中,使用package 打包,这个要在外层的pom.xml中配置
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.4.RELEASE</version> <configuration><!-- 指定该Main Class为全局的唯一入口 --> <mainClass>com.demo.Application</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中--> </goals> </execution> </executions> </plugin>
相关文章推荐
- maven无法加载本地jar包以及maven项目打包后本地jar包没有打进项目的问题解决办法
- react-native学习(RN)--之Window环境下搭建环境配置,以及初始化建立react-native项目,(真机和模拟器运行的相关错误解决办法,android打包报错)
- maven netty spring项目打包jar报错解决办法!
- maven无法加载本地jar包以及maven项目打包后本地jar包没有打进项目的问题解决办法
- Spring ContextLoaderListener的解决办法-maven的java web项目启动找不到
- springcloud项目网关升级:gateway替代zuul以及解决gateway跨域访问问题
- maven打包的时候没有将xml打包和加编译脚本以及tomcat的远程部署的解决办法
- 用maven管理Spring项目出现org.hibernate.MappingException Unknown entity的问题解决办法
- eclipse搭建maven项目 pom.xml出现红叉,提示Missing artifact jdk.tools:jdk.tools:jar:1.7,解决办法如下:
- Java maven项目的搭建,配置web框架以及Spring
- 搬砖中的小事之代码(五)--maven项目的各种异常以及解决办法
- 搭建项目Maven+springMVC+hibernate时,JUnit测试出现报ClassNotFoundException错误的解决
- mybatis+maven+mysql 项目简单搭建与junit空指针异常解决办法
- maven的java web项目启动找不到Spring ContextLoaderListener的解决办法
- Spring Boot Eclipse maven项目 错误: 找不到或无法加载主类...解决办法
- eclipse将Maven项目打包 war包报错No compiler is provided in this environment解决办法
- spring boot项目 maven项目导入eclipse自动maven update 后jre不是1.8而是1.6解决办法
- Idea 打包maven项目 以及spring boot 的自动配置
- maven项目打包xml没有被打包解决办法 ,mybatis的xml打包
- java学习之路----项目经验----eclipse 关于maven打包乱码的解决办法