pipIrr-platform/pipIrr-common/pipIrr-common.iml
@@ -97,14 +97,13 @@ <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.11" level="project" /> <orderEntry type="library" name="Maven: cglib:cglib:3.3.0" level="project" /> <orderEntry type="library" name="Maven: org.ow2.asm:asm:7.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" /> <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.2" level="project" /> <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" /> <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" /> <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.1" level="project" /> <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.1.7" level="project" /> </component> </module> pipIrr-platform/pipIrr-common/pom.xml
@@ -42,6 +42,7 @@ <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- @Aspect @Pointcut @Around等应用 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> @@ -71,7 +72,6 @@ <artifactId>springdoc-openapi-security</artifactId> </dependency> <!--mysql驱动--> <dependency> <groupId>com.mysql</groupId> @@ -82,25 +82,25 @@ <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.20</version> </dependency> <!--mybatis-plus-spring-boot--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.2</version> </dependency> <!-- 阿里fastjson --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> </dependency> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> <version>2.0.40</version> </dependency> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-extension-spring6</artifactId> <version>2.0.40</version> </dependency> <!-- jdom2 --> @@ -113,12 +113,8 @@ <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-core</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-filter-compression</artifactId> </dependency> <!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> @@ -130,22 +126,77 @@ <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <!-- spring boot提供的maven打包插件 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 该插件不会将项目中引入的依赖打进最终的 Jar 文件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 --> <addMavenDescriptor>false</addMavenDescriptor> <!-- 这部分可有可无,加上的话则直接生成可运行jar包 <manifest> <mainClass>com.dy.Main</mainClass> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> --> <!-- manifestEntries的作用是指定本地(自己下载的lib下的)jar包添加到MANIFEST.MF文件中去 <manifestEntries> <Class-Path>.lib/alipay-sdk.java.jar</Class-Path> </manifestEntries> --> </archive> <!-- 排除某个文件 <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> <exclude>com/dy/App.class</exclude> </excludes> --> <!-- 可执行jar进行命名。这样会打包成两个jar包,不会对普通jar重新命名。 <classifier>exec</classifier> --> </configuration> </plugin> <plugin> <!-- 当项目中依赖比较多时,我们可以借助 maven-dependency-plugin 插件自动帮我们下载依赖的 Jar 文件,推荐将该插件绑定到package生命周期上 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <!-- 绑定生命周期 --> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <!-- 设置依赖的存放路径 --> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> @@ -157,9 +208,10 @@ </configuration> </plugin> <plugin> <!-- 强制设定 java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/fastjson/FastJsonConfig.java
@@ -6,18 +6,18 @@ import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; //import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @Configuration public class FastJsonConfig implements WebMvcConfigurer { public class FastJsonConfig { /** * 配置fastjson输出格式 **/ @Override @SuppressWarnings("unused") public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { // 1. 配置fastjson com.alibaba.fastjson2.support.config.FastJsonConfig config = new com.alibaba.fastjson2.support.config.FastJsonConfig(); pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationScan.java
@@ -65,9 +65,9 @@ int onLineDataMinLength; int headMinLength ; HashMap<String, AnnotationDriverVo> driverMap = ProtocolCach.getDriverMap() ; HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCach.getPrefixedDataAvailableMap() ; HashMap<String, AnnotationOnLineVo> onLineMap = ProtocolCach.getOnLineMap() ; HashMap<String, AnnotationDriverVo> driverMap = ProtocolCache.getDriverMap() ; HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCache.getPrefixedDataAvailableMap() ; HashMap<String, AnnotationOnLineVo> onLineMap = ProtocolCache.getOnLineMap() ; for(String cName : classNames){ String className = cName.substring(0, cName.lastIndexOf('.')) ; pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java
@@ -12,7 +12,7 @@ */ public OnLine.OnLineResult parse(byte[] bs)throws Exception{ OnLine.OnLineResult rs = null ; HashMap<String, AnnotationOnLineVo> onLineMap = ProtocolCach.getOnLineMap() ; HashMap<String, AnnotationOnLineVo> onLineMap = ProtocolCache.getOnLineMap() ; Collection<AnnotationOnLineVo> set = onLineMap.values() ; if(set.size() == 0){ throw new Exception("处理上线时,得到的协议集合为空。") ; pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java
@@ -30,7 +30,7 @@ try{ PrefixedDataAvailableStatus pds = null ; HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCach.getPrefixedDataAvailableMap() ; HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCache.getPrefixedDataAvailableMap() ; Collection<AnnotationPrefixedDataAvailableVo> set = prefixedDataAvailableMap.values() ; if(set.size() == 0){ throw new Exception("上线数据完整性检查时,得到的协议完整性检查类集合为空。") ; @@ -90,7 +90,7 @@ try{ PrefixedDataAvailableStatus pds = null ; HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCach.getPrefixedDataAvailableMap() ; HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCache.getPrefixedDataAvailableMap() ; Collection<AnnotationPrefixedDataAvailableVo> set = prefixedDataAvailableMap.values() ; if(set.size() == 0){ throw new Exception("上线数据完整性检查时,得到的协议集合为空。") ; pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java
File was renamed from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCach.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Map; public class ProtocolCach { public class ProtocolCache { //本系统中,Driver在单线程中运行,所以只用一个实例 private static final HashMap<String, Driver> drivers = new HashMap<>() ; @@ -79,6 +79,7 @@ return onLineMap; } /* public static void main(String[] args){ HashMap<String, Integer> mp = new HashMap<>() ; mp.put("a1", 1) ; @@ -86,4 +87,5 @@ List<String> list = new ArrayList<>(mp.keySet()) ; System.out.println(list); } */ } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnit.java
@@ -44,7 +44,7 @@ AnnotationScan.getIntance() ; //各个协议驱动类扫描自己的功能码注解 HashMap<String, AnnotationDriverVo> drivers = ProtocolCach.getDriverMap() ; HashMap<String, AnnotationDriverVo> drivers = ProtocolCache.getDriverMap() ; Collection<String> colDrivers = drivers.keySet() ; StringBuilder totalProtocols = new StringBuilder() ; for(String protocolName : colDrivers){ @@ -52,7 +52,7 @@ totalProtocols.append(",") ; } totalProtocols.append(protocolName) ; Driver dri = ProtocolCach.getDriver(protocolName) ; Driver dri = ProtocolCache.getDriver(protocolName) ; if(dri != null){ dri.scanAnnotationCode(); } @@ -70,7 +70,7 @@ */ @SuppressWarnings("unused") public boolean isOnlyOneProtocol(){ HashMap<String, AnnotationDriverVo> drivers = ProtocolCach.getDriverMap() ; HashMap<String, AnnotationDriverVo> drivers = ProtocolCache.getDriverMap() ; return drivers.size() == 1 ; } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/AsciiPic.java
@@ -81,6 +81,7 @@ } } /* public static void main(final String[] args) { try { AsciiPic.createAsciiPic(toBufferedImage(creatImage("DY.png"))); @@ -88,4 +89,5 @@ e.printStackTrace(); } } */ } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java
@@ -1486,6 +1486,7 @@ // System.out.println(v5); // // } /* public static void main(String[] args) throws Exception { byte[] bs = new byte[]{0x38, 0x36, 0x39, 0x31} ; String s = bytes2String_BE(bs, 0, 3) ; @@ -1499,5 +1500,6 @@ } System.out.println(v); } */ } pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
@@ -1619,7 +1619,7 @@ } /* public static void main(String[] args){ Long now = getTime() ; System.out.println(now); @@ -1631,6 +1631,6 @@ String s = yyyy_MM_dd_HH_mm_ss(dt); System.out.println(s); } */ } pipIrr-platform/pipIrr-global/pipIrr-global.iml
@@ -25,24 +25,20 @@ </content> <orderEntry type="jdk" jdkName="20" jdkType="JavaSDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="module" module-name="pipIrr-common" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.1.3" level="project" /> <orderEntry type="module" module-name="pipIrr-common" scope="PROVIDED" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:3.1.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.4.11" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.4.11" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:2.0.7" level="project" /> <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-core:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:10.1.12" level="project" /> <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:10.1.12" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" /> <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.11.2" level="project" /> <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.11.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" /> <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" /> <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" /> <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" /> @@ -54,28 +50,25 @@ <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.2.0" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.15" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.15" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.15" level="project" /> <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" /> <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:2.7.9" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:2.0.7" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.15.2" level="project" /> <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" /> <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.11.2" level="project" /> <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.11.2" level="project" /> <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.3.2" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.3.2" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.3.2" level="project" /> @@ -84,12 +77,11 @@ <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.6" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.1.3" level="project" /> <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.11" level="project" /> <orderEntry type="library" name="Maven: cglib:cglib:3.3.0" level="project" /> <orderEntry type="library" name="Maven: org.ow2.asm:asm:7.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> pipIrr-platform/pipIrr-global/pom.xml
@@ -21,23 +21,19 @@ <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.1.3</version> <scope>provided</scope> <!-- optional=true,不传递依赖,即pipIrr-web-base依赖pipIrr-global,但不会传递依赖到pipIrr-common --> <optional>true</optional> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> <!-- 排除掉pipIrr-common的所有依赖,本模块自己定义依赖 --> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <!-- 输入参数据验证 --> <dependency> <groupId>org.springframework.boot</groupId> @@ -53,47 +49,19 @@ <artifactId>springdoc-openapi-starter-webmvc-api</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>3.1.3</version> <scope>runtime</scope> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.28</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.20</version> </dependency> <!--log4j2日志--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>2.7.9</version> </dependency> <!-- 用于辨认log4j2.yml文件 --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>2.15.2</version> </dependency> <!--mybatis-plus-spring-boot--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.2</version> </dependency> <!-- 阿里fastjson --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> @@ -120,21 +88,79 @@ </dependency> </dependencies> <build> <plugins> <plugin> <!-- spring boot提供的maven打包插件 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 该插件不会将项目中引入的依赖打进最终的 Jar 文件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 --> <addMavenDescriptor>false</addMavenDescriptor> <!-- 这部分可有可无,加上的话则直接生成可运行jar包 <manifest> <mainClass>com.dy.Main</mainClass> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> --> <!-- manifestEntries的作用是指定本地(自己下载的lib下的)jar包添加到MANIFEST.MF文件中去 <manifestEntries> <Class-Path>.lib/alipay-sdk.java.jar</Class-Path> </manifestEntries> --> </archive> <!-- 排除某个文件 <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> <exclude>com/dy/App.class</exclude> </excludes> --> <!-- 可执行jar进行命名。这样会打包成两个jar包,不会对普通jar重新命名。 <classifier>exec</classifier> --> </configuration> </plugin> <plugin> <!-- 当项目中依赖比较多时,我们可以借助 maven-dependency-plugin 插件自动帮我们下载依赖的 Jar 文件,推荐将该插件绑定到package生命周期上 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <!-- 绑定生命周期 --> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <!-- 设置依赖的存放路径 --> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> @@ -143,11 +169,7 @@ <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 强制设定 java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml
@@ -11,25 +11,125 @@ <packaging>jar</packaging> <artifactId>pipIrr-mw-accept</artifactId> <version>1.0.0</version> <name>pipIrr-mw-accept</name> <description>通信中间件</description> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 系统监管 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- api在线文档 https://springdoc.org/#modules--> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-api</artifactId> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-security</artifactId> </dependency> <!-- 动态加载新编译的类 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <!--mysql驱动--> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.33</version> </dependency> <!--druid-spring-boot连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.20</version> </dependency> <!--mybatis-plus-spring-boot--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.2</version> </dependency> <!-- bean和map互转换 --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>3.2.7</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </exclusion> <exclusion> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </exclusion> <exclusion> <groupId>com.alibaba.spring</groupId> <artifactId>spring-context-support</artifactId> </exclusion> <exclusion> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> </exclusion> <exclusion> <groupId>com.alibaba</groupId> <artifactId>hessian-lite</artifactId> </exclusion> <exclusion> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </exclusion> </exclusions> </dependency> <!-- apache mina --> <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-core</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-filter-compression</artifactId> <version>2.2.1</version> <version>2.2.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.7</version> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project> pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java
@@ -6,7 +6,6 @@ import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/TcpUpDataCache.java
@@ -26,7 +26,7 @@ * @throws Exception 异常 */ public static void cacheRtuUpData(boolean reportOrResponse_trueOrFalse, AboutRtuNode node) throws Exception{ if(node != null && node.data != null){ if(node != null && node.obj != null){ if(reportOrResponse_trueOrFalse){ cacheQueue.pushHead(node); }else{ pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java
@@ -7,7 +7,7 @@ import com.dy.common.mw.protocol.MidResult; import com.dy.common.mw.protocol.Command; import com.dy.common.mw.protocol.Driver; import com.dy.common.mw.protocol.ProtocolCach; import com.dy.common.mw.protocol.ProtocolCache; import com.dy.aceMw.server.ServerProperties; import com.dy.aceMw.server.forTcp.TcpSessionCach; @@ -44,13 +44,13 @@ String protocolName = TcpSessionCach.getTcpProtocolName(rtuAddr) ; if(protocolName == null){ //RTU未曾上线 int count = ProtocolCach.driverCount() ; int count = ProtocolCache.driverCount() ; if(count == 1){ //只有一个协议 dri = ProtocolCach.getFirstDriver() ; dri = ProtocolCache.getFirstDriver() ; } }else{ dri = ProtocolCach.getDriver(protocolName) ; dri = ProtocolCache.getDriver(protocolName) ; } if(dri == null){ log.error("严重错误,未能得到协议" + protocolName + "驱动类实例!"); pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java
@@ -14,7 +14,7 @@ import com.dy.common.mw.protocol.Driver; import com.dy.common.mw.protocol.OnLine; import com.dy.common.mw.protocol.OnLineHandle; import com.dy.common.mw.protocol.ProtocolCach; import com.dy.common.mw.protocol.ProtocolCache; import com.dy.aceMw.server.ServerProperties; import com.dy.aceMw.server.forTcp.RtuLogDealer; import com.dy.aceMw.server.forTcp.RtuStatusDealer; @@ -144,7 +144,7 @@ * @throws Exception 异常 */ private void dealUpData(IoSession session, String rtuAddrAtHead, String protocolName, boolean isOnLine, byte[] upBuf, String upHex) throws Exception{ Driver dri = ProtocolCach.getDriver(protocolName) ; Driver dri = ProtocolCache.getDriver(protocolName) ; if(dri == null){ log.error("严重错误,未能得到协议" + protocolName + "驱动类实例!"); }else{ pipIrr-platform/pipIrr-mw/pipIrr-mw.iml
@@ -8,88 +8,19 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="module" module-name="pipIrr-common" /> <orderEntry type="module" module-name="pipIrr-global" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" /> <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" /> <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" /> <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.5.3.Final" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.1.3" level="project" /> <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:10.1.12" level="project" /> <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:10.1.12" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" /> <orderEntry type="module" module-name="pipIrr-common" scope="PROVIDED" /> <orderEntry type="module" module-name="pipIrr-global" scope="PROVIDED" /> <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.15.2" level="project" /> <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:3.1.3" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" /> <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.11.2" level="project" /> <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.11.2" level="project" /> <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.11.2" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: org.hdrhistogram:HdrHistogram:2.1.12" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" /> <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0" level="project" /> <orderEntry type="library" name="Maven: org.webjars:swagger-ui:5.2.0" level="project" /> <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0" level="project" /> <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.2.0" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.15" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.15" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.15" level="project" /> <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-security:1.7.0" level="project" /> <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-common:1.7.0" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core:2.2.9" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.2.9" level="project" /> <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models:2.2.9" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:6.1.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.1.2" level="project" /> <orderEntry type="library" name="Maven: com.mysql:mysql-connector-j:8.0.33" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.20" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.20" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:4.0.3" level="project" /> <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-core:4.0.3" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: org.eclipse.angus:angus-activation:2.0.1" level="project" /> <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:4.0.3" level="project" /> <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:4.1.2" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.3.2" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.3.2" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.3.2" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.3.2" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.3.2" level="project" /> <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.6" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.1.3" level="project" /> <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.11" level="project" /> <orderEntry type="library" name="Maven: cglib:cglib:3.3.0" level="project" /> <orderEntry type="library" name="Maven: org.ow2.asm:asm:7.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> @@ -97,37 +28,8 @@ <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" /> <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" /> <orderEntry type="library" name="Maven: org.apache.dubbo:dubbo:3.2.7" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:3.1.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:3.1.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:3.1.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.8.0" level="project" /> <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" /> <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.11" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.11" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.24.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.14.6" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.9.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.9.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.9.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.9.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.9.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.9.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:5.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.14.6" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:5.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-core:6.0.11" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.11" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:6.0.11" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.9.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" /> </component> </module> pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/.gitignore
New file @@ -0,0 +1,33 @@ HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ build/ !**/src/main/**/build/ !**/src/test/**/build/ ### VS Code ### .vscode/ pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/pipIrr-mwTest-server.iml
New file @@ -0,0 +1,49 @@ <?xml version="1.0" encoding="UTF-8"?> <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="web" name="Web"> <configuration> <webroots /> <sourceRoots> <root url="file://$MODULE_DIR$/src/main/java" /> <root url="file://$MODULE_DIR$/src/main/resources" /> </sourceRoots> </configuration> </facet> </component> <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16"> <output url="file://$MODULE_DIR$/target/classes" /> <output-test url="file://$MODULE_DIR$/target/test-classes" /> <content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> <excludeFolder url="file://$MODULE_DIR$/target" /> </content> <orderEntry type="jdk" jdkName="20" jdkType="JavaSDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="module" module-name="pipIrr-common" scope="PROVIDED" /> <orderEntry type="module" module-name="pipIrr-global" scope="PROVIDED" /> <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.5.5.Final" level="project" /> <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" /> <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" /> </component> </module> pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/pom.xml
New file @@ -0,0 +1,104 @@ <?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> <parent> <artifactId>pipIrr-mw</artifactId> <groupId>com.dy</groupId> <version>1.0.0</version> <relativePath>../pom.xml</relativePath> </parent> <packaging>jar</packaging> <artifactId>pipIrr-mwTest-server</artifactId> <version>1.0.0</version> <name>pipIrr-mwTest-server</name> <description>为模拟RTU测试端提供服务</description> <dependencies> </dependencies> <build> <plugins> <plugin> <!-- 该插件不会将项目中引入的依赖打进最终的 Jar 文件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 --> <addMavenDescriptor>false</addMavenDescriptor> <!-- 这部分可有可无,加上的话则直接生成可运行jar包 --> <manifest> <mainClass>com.dy.testServer.Server</mainClass> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> <!-- manifestEntries的作用是指定本地(自己下载的lib下的)jar包添加到MANIFEST.MF文件中去 <manifestEntries> <Class-Path>.lib/alipay-sdk.java.jar</Class-Path> </manifestEntries> --> </archive> <!-- 排除某个文件 <excludes> <exclude>com/dy/App.class</exclude> </excludes> --> <!-- 可执行jar进行命名。这样会打包成两个jar包,不会对普通jar重新命名。 <classifier>exec</classifier> --> </configuration> </plugin> <plugin> <!-- 当项目中依赖比较多时,我们可以借助 maven-dependency-plugin 插件自动帮我们下载依赖的 Jar 文件,推荐将该插件绑定到package生命周期上 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <!-- 绑定生命周期 --> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <!-- 设置依赖的存放路径 --> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/AdapterImp_RmiUnit.java
New file @@ -0,0 +1,26 @@ package com.dy.testServer; import com.dy.common.mw.channel.rmi.RmiConfigVo; import com.dy.common.mw.channel.rmi.RmiRequestCallback; import com.dy.common.mw.channel.rmi.RmiUnitAdapter; import com.dy.testServer.forRmi.RmiRequestedCallback; public class AdapterImp_RmiUnit implements RmiUnitAdapter { private RmiConfigVo configVo ; @Override public RmiConfigVo getConfig() { return configVo; } public void setConfig(RmiConfigVo configVo){ this.configVo = configVo ; } @Override public RmiRequestCallback newRequestCallback() { return new RmiRequestedCallback(); } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/Server.java
New file @@ -0,0 +1,167 @@ package com.dy.testServer; import java.io.Console; import java.util.ArrayList; import java.util.List; import com.dy.testServer.console.CommandConsole; import com.dy.testServer.forRmi.Manager; import org.jdom2.Document; import com.dy.common.mw.UnitInterface; import com.dy.common.mw.UnitStartedCallbackInterface; import com.dy.common.mw.channel.rmi.RmiConfigVo; import com.dy.common.mw.channel.rmi.RmiUnit; import com.dy.common.util.ConfigXml; import com.dy.common.util.NumUtil; public class Server{ private ConfigXml conf = null ; private Document doc = null ; private boolean showStartInfo = false ; private String RmiSvUrl ; private final List<UnitInterface> units = new ArrayList<>() ; /** * @param args 参数 */ public static void main(String[] args) { new Server().startServer(args); } /** * 启动服务 */ public void startServer(String[] args){ Server sv = new Server(); long start = System.currentTimeMillis() ; try { sv.conf = new ConfigXml() ; sv.doc = sv.conf.createDom(sv.getClass(), "/config.xml") ; //////////////// //服务 配置 sv.showStartInfo = sv.conf.getSetAttrBoolean(sv.doc, "config.server", "showStartInfo", null, null) ; sv.startUnits() ; String svName ; try{ svName = sv.conf.getSetAttrTxt(sv.doc, "config.server", "name", null, false, null) ; }catch(Exception e){ svName = "" ; } System.out.println("OOOOOOOOOO OOOOOOOO OOOOOOOO") ; System.out.println("@@@@@@@@@@@@@@@@#O $@@@@@@@@& @@@@@@@@#") ; System.out.println("@@@@@@@@@@@@@@@@@@@# @@@@@@@@# $@@@@@@@@&") ; System.out.println("@@@@@@@@@@@@@@@@@@@@@# #@@@@@@@@@@@@@@@@O") ; System.out.println("@@@@@@@@@@@@@@@@@@@@@@@ &@@@@@@@@@@@@@@") ; System.out.println("@@@@@@$ $@@@@@@@@@& O@@@@@@@@@@@#") ; System.out.println("@@@@@@$ @@@@@@@@@ @@@@@@@@@& " + svName + "mwTestSv " ) ; System.out.println("@@@@@@$ @@@@@@@@@ &@@@@@@@@") ; System.out.println("@@@@@@$ O@@@@@@@@@ &@@@@@@@@") ; if(sv.RmiSvUrl != null){ System.out.println("@@@@@@$ #@@@@@@@@@$ &@@@@@@@@ RmiSv " + sv.RmiSvUrl ) ; }else{ System.out.println("@@@@@@$ #@@@@@@@@@$ &@@@@@@@@" ) ; } System.out.println("@@@@@@@@@@@@@@@@@@@@@@# &@@@@@@@@ Runing in standalone mode" ) ; System.out.println("@@@@@@@@@@@@@@@@@@@@@& &@@@@@@@@ Startup in " + (System.currentTimeMillis() - start) + " MS" ) ; System.out.println("@@@@@@@@@@@@@@@@@@@# &@@@@@@@@") ; System.out.println("@@@@@@@@@@@@@@@@#O &@@@@@@@@") ; Console console = System.console(); if (console == null) { throw new IllegalStateException("严重错误,未能得到控制台对象!"); } CommandConsole mwConsole = new CommandConsole(console) ; mwConsole.init(args); boolean exit = mwConsole.clientConsole() ; if(exit){ System.exit(-1); } }catch(Exception e){ e.printStackTrace(); } } private void startUnits(){ try { /////////////// //基本配置 String txt = conf.getSetAttrTxt(doc, "config.base", "rtuAddrStart", null, false, null) ; if(txt == null || txt.trim().equals("")){ throw new Exception("元素config.base的属性rtuAddrStart的值为空字符串!"); } txt = txt.trim() ; if(!NumUtil.isPlusIntNumber(txt)){ throw new Exception("元素config.base的属性rtuAddrStart的值必须为数值!"); } if(txt.startsWith("0")){ throw new Exception("元素config.base的属性rtuAddrStart的数值不能以0开头!"); } if(txt.length() != 10){ throw new Exception("元素config.base的属性rtuAddrStart的数值长度必须为10位!"); } ServerProperties.rtuAddrStart = Long.valueOf(txt) ; txt = conf.getSetAttrTxt(doc, "config.base", "rtuAddrEnd", null, false, null) ; if(txt == null || txt.trim().equals("")){ throw new Exception("元素config.base的属性rtuAddrEnd的值为空字符串!"); } txt = txt.trim() ; if(!NumUtil.isPlusIntNumber(txt)){ throw new Exception("元素config.base的属性rtuAddrEnd的值必须为数值!"); } if(txt.startsWith("0")){ throw new Exception("元素config.base的属性rtuAddrEnd的数值不能以0开头!"); } if(txt.length() != 10){ throw new Exception("元素config.base的属性rtuAddrEnd的数值长度必须为10位!"); } ServerProperties.rtuAddrEnd = Long.valueOf(txt) ; if(ServerProperties.rtuAddrEnd <= ServerProperties.rtuAddrStart){ throw new Exception("元素config.base的属性rtuAddrEnd的数值必须大于rtuAddrStart!"); } ServerProperties.rtuAddrPerMwTest = conf.getSetAttrPlusInt(doc, "config.base", "rtuAddrPerMwTest", null, 1, null, null) ; if(ServerProperties.rtuAddrPerMwTest > ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart){ throw new Exception("元素config.base的属性rtuAddrPerMwTest的数值配置不正确!"); } ServerProperties.tcpServerIp = conf.getSetAttrTxt(doc, "config.base", "tcpServerIp", null, false, null) ; ServerProperties.tcpServerPort = conf.getSetAttrPlusInt(doc, "config.base", "tcpServerPort", null, 1, 65535, null) ; ServerProperties.sendTimes = conf.getSetAttrPlusInt(doc, "config.base", "sendTimes", null, 1, null, null) ; ///////////////// //RMI模块 Manager.init(); RmiConfigVo rmiVo = new RmiConfigVo(); rmiVo.enable = conf.getSetAttrBoolean(doc, "config.rmi", "enable", null, null) ; if(rmiVo.enable){ rmiVo.port = conf.getSetAttrPlusInt(doc, "config.rmi", "port", null, 100, 65535, null); rmiVo.context = conf.getSetAttrTxt(doc, "config.rmi", "context", null, false, null); rmiVo.showStartInfo = showStartInfo ; AdapterImp_RmiUnit rmiAdap = new AdapterImp_RmiUnit(); rmiAdap.setConfig(rmiVo); RmiUnit rmiUnit = RmiUnit.getInstance(); rmiUnit.setAdapter(rmiAdap); rmiUnit.start(new UnitStartedCallbackInterface(){ @Override public void call(Object obj) { } }); RmiSvUrl = "[ip]:" + rmiVo.port + "/" + rmiVo.context ; units.add(rmiUnit) ; } } catch (Exception e) { e.printStackTrace(); } } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/ServerProperties.java
New file @@ -0,0 +1,18 @@ package com.dy.testServer; public class ServerProperties { //模拟客户的rtuAddr起始号 public static Long rtuAddrStart = 0L ; //模拟客户的rtuAddr截止号 public static Long rtuAddrEnd = 0L ; //每个mwTest分配的rtuAddr数 public static Integer rtuAddrPerMwTest = 0 ; //服务端URL public static String tcpServerIp = "" ; //服务端上下文 public static Integer tcpServerPort = 60000 ; //发送数据次数 public static Integer sendTimes = 0 ; } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/Command.java
New file @@ -0,0 +1,126 @@ package com.dy.testServer.console; import java.io.PrintWriter; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Iterator; import java.util.Map; import java.util.Set; import com.dy.common.mw.channel.rmi.RmiConfigVo; import com.dy.common.mw.channel.rmi.RmiUnit; import com.dy.testServer.ServerProperties; import com.dy.testServer.forRmi.MwTestClientStatus; import com.dy.testServer.forRmi.Manager; public class Command { private static final String[] commands ; static{ commands = new String[]{ "config 查看配置信息", "show 显示mwTest情况", "start 启动mwTest上报数据", "exit 退出", }; } public static boolean dealCommand(String command, PrintWriter prtWrt){ boolean exit = false ; if (command.equals("help")) { outCommand(prtWrt); } else if (command.equals("config")) { config(prtWrt); } else if (command.equals("show")) { show(prtWrt); } else if (command.equals("start")) { start(prtWrt); } else if(command.equals("exit")){ exit = true ; } else { outError(prtWrt); } return exit ; } private static void outCommand(PrintWriter prtWrt){ prtWrt.println(""); prtWrt.println("命令"); for(String s : commands){ prtWrt.println(" " + s); } prtWrt.println(""); } private static void outError(PrintWriter prtWrt){ prtWrt.println(""); prtWrt.println("命令不可识别!"); prtWrt.println(""); } private static void config(PrintWriter prtWrt){ prtWrt.println(""); prtWrt.println("相关mwTest的配置"); prtWrt.println(" 模拟客户的RtuAddr起始号:" + ServerProperties.rtuAddrStart); prtWrt.println(" 模拟客户的RtuAddr截止号:" + ServerProperties.rtuAddrEnd); prtWrt.println(" 每个mwTest分配的RtuAddr数:" + ServerProperties.rtuAddrPerMwTest); prtWrt.println(" 通信中间件IP:" + ServerProperties.tcpServerIp); prtWrt.println(" 通信中间件端口:" + ServerProperties.tcpServerPort); prtWrt.println(" mwTest每RtuAddr号发送数据次数:" + ServerProperties.sendTimes); prtWrt.println("本服务RMI Server配置"); String ip = null ; try { ip = InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { e.printStackTrace(); } RmiConfigVo confVo = RmiUnit.getInstance().getAdapter().getConfig() ; if(ip != null){ prtWrt.println(" RMI Server:" + ip + ":" + confVo.port + "/" + confVo.context); }else{ prtWrt.println(" RMI Server:[ip]:" + confVo.port + "/" + confVo.context); } prtWrt.println(""); } private static void show(PrintWriter prtWrt){ prtWrt.println(""); prtWrt.println("当前已注册mwTest客户端数量:" + Manager.id2TokenMap.size()); if(Manager.id2TokenMap.size() > 0){ prtWrt.println("mwTest客户端及其工作信息"); Set<Map.Entry<String, MwTestClientStatus>> set = Manager.token2ClientMap.entrySet() ; Iterator<Map.Entry<String, MwTestClientStatus>> it = set.iterator() ; Map.Entry<String, MwTestClientStatus> ent ; while(it.hasNext()){ ent = it.next() ; prtWrt.println(" mwTest客户端(token=" + ent.getKey() + ")"); MwTestClientStatus sta = ent.getValue() ; if(sta != null){ if(sta.confVo != null){ prtWrt.println(" rtuAddr范围:" + sta.confVo.rtuAddrStart + "--" + sta.confVo.rtuAddrEnd); } if(sta.startVo != null){ prtWrt.println(" 上报数据:" + (sta.startVo.start?"已经开始":"未开始")); }else{ prtWrt.println(" 上报数据:未开始") ; } if(sta.count != null){ prtWrt.println(" 已经上报数据:" + sta.count + "条"); } if(sta.over != null && sta.over){ prtWrt.println(" 上报数据已经完成,共用时:" + sta.seconds + "秒"); } } } } prtWrt.println(""); } private static void start(PrintWriter prtWrt){ prtWrt.println(""); prtWrt.println(" 已经允许mwTest上报数据了"); prtWrt.println(""); Manager.enablemwTestStart = true ; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/console/CommandConsole.java
New file @@ -0,0 +1,91 @@ package com.dy.testServer.console; import java.io.Console; import java.io.PrintWriter; public class CommandConsole { private Console console ; private PrintWriter prtWrt ; private static final String myPassword = "123456" ; private static final String commandPrefix1 = ">>" ; private static final String commandPrefix2 = "$: " ; private static String commandPrefix = commandPrefix1 + commandPrefix2 ; public CommandConsole(Console console)throws Exception{ this.console = console ; if(this.console == null){ throw new Exception("严重错误,java控制台对象为空!"); } prtWrt = console.writer() ; } /** * 初始,检查并输出一些信息 * @param args 参数 * @throws Exception 异常 */ public void init(String[] args) throws Exception{ PrintWriter prtWrt = console.writer() ; if(args != null && args.length > 0){ String str = "" ; for(String s : args){ str += s ; } prtWrt.println("info:启动参数" + str); } prtWrt.println("----------------------------------------"); prtWrt.println("-- --"); prtWrt.println("-- 欢迎使用mwTest 服务控制端 --"); prtWrt.println("-- --"); prtWrt.println("----------------------------------------"); } /** * 执行控制台控制 * @return 返回 */ public boolean clientConsole(){ boolean exit = false ; try { this.login() ; exit = this.doConsole(); } catch (Exception e) { e.printStackTrace(); } return exit ; } private boolean login(){ while (true) { //String username = console.readLine("Username: "); char[] password = console.readPassword(">>Password: "); String passwordStr = String.valueOf(password) ; if (passwordStr.equals("help")) { console.printf("密码是%1$s.\n", "123456"); // 使用后应立即将数组清空,以减少其在内存中占用的时间,增强安全性 password = null; } else if(passwordStr.equals(myPassword)){ return true; } } } private boolean doConsole(){ boolean exit = false ; while (!exit) { String command = console.readLine(commandPrefix); exit = Command.dealCommand(command, prtWrt) ; } return exit ; } public static void changeCommandPrefix(String prefix){ commandPrefix = commandPrefix1 + prefix ; } public static void recoverCommandPrefix(){ commandPrefix = commandPrefix1 + commandPrefix2 ; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Code.java
New file @@ -0,0 +1,15 @@ package com.dy.testServer.forRmi; public class Code { public static String cd1 = "001" ;//注册 public static String cd2 = "002" ;//请求mwClient的配置 public static String cd3 = "003" ;//请求开始工作 public static String cd4 = "004" ;//向服务端上报信息 public static String cd5 = "005" ;//向服务端上报 数据上报工作已经完成 } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java
New file @@ -0,0 +1,173 @@ package com.dy.testServer.forRmi; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.dy.testServer.ServerProperties; public class Manager { public static boolean enablemwTestStart = false ; public static int clientId = 1 ; public static long maxClient = 0 ; public static Map<String, String> id2TokenMap = new HashMap<>() ; public static Map<String, MwTestClientStatus> token2ClientMap = new HashMap<>() ; public static List<Object[]> rtuAddrList = new ArrayList<>() ; public static void init(){ maxClient = (ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart)/ServerProperties.rtuAddrPerMwTest ; if((ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart)%ServerProperties.rtuAddrPerMwTest > 0 ){ maxClient = maxClient + 1 ; } int count = 0 ; for(int i = 0; i < maxClient; i++){ long start = ServerProperties.rtuAddrStart + (i * ServerProperties.rtuAddrPerMwTest) ; long end = ServerProperties.rtuAddrStart + ((i + 1) * ServerProperties.rtuAddrPerMwTest - 1) ; if(end > ServerProperties.rtuAddrEnd){ end = ServerProperties.rtuAddrEnd ; } if(end < start){ break ; }else{ rtuAddrList.add(count++, new Object[]{start, end}); } } } public synchronized static String dealRequest(Object obj) throws Exception{ RmiResponseVo resVo ; if(obj == null){ resVo = new RmiResponseVo() ; resVo.success = false ; resVo.errorInfo = "收到的数据为null" ; }else if(!(obj instanceof String)){ resVo = new RmiResponseVo() ; resVo.success = false ; resVo.errorInfo = "收到的数据不是字符串类型" ; }else{ RmiRequestVo rqVo = RmiRequestVo.jsonToObject((String)obj) ; resVo = doDeal(rqVo) ; } return resVo.toJson() ; } private static RmiResponseVo doDeal(RmiRequestVo rqVo){ RmiResponseVo resVo = new RmiResponseVo() ; resVo.code = rqVo.code ; if(rqVo.code.equals(Code.cd1)){ if(rqVo.id == null || rqVo.id.trim().equals("")){ resVo.success = false ; resVo.errorInfo = "注册失败,必须提供客户端ID " ; }else{ ResRegisterVo vo = doDealRegister(rqVo) ; if(vo != null){ resVo.obj = vo ; }else{ resVo.success = false ; resVo.errorInfo = "rtuAddr已经分配完成,注册失败" ; } } }else if(rqVo.code.equals(Code.cd2)){ resVo.obj = doDealGetConfig(rqVo) ; }else if(rqVo.code.equals(Code.cd3)){ resVo.obj = doDealGetStart(rqVo) ; }else if(rqVo.code.equals(Code.cd4)){ doDealReportCount(rqVo) ; }else if(rqVo.code.equals(Code.cd5)){ doDealReportOver(rqVo) ; } return resVo ; } private static ResRegisterVo doDealRegister(RmiRequestVo rqVo){ ResRegisterVo resVo = null ; String token = id2TokenMap.get(rqVo.id) ; if(token == null){ if(clientId <= rtuAddrList.size()){ resVo = new ResRegisterVo() ; resVo.token = "" + clientId ; id2TokenMap.put(rqVo.id, resVo.token) ; clientId++ ; } }else{ resVo = new ResRegisterVo() ; resVo.token = token ; } return resVo ; } private static MwConfigVo doDealGetConfig(RmiRequestVo rqVo){ MwConfigVo conVo ; int token = Integer.parseInt(rqVo.token) ; MwTestClientStatus sta = token2ClientMap.get("" + token); if(sta == null){ Object[] rtuAddrs = rtuAddrList.get(token-1) ; conVo = new MwConfigVo() ; conVo.rtuAddrStart = (Long)rtuAddrs[0] ; conVo.rtuAddrEnd = (Long)rtuAddrs[1] ; conVo.tcpServerIp = ServerProperties.tcpServerIp ; conVo.tcpServerPort = ServerProperties.tcpServerPort ; conVo.sendTimes = ServerProperties.sendTimes ; sta = new MwTestClientStatus() ; sta.confVo = conVo ; token2ClientMap.put("" + token, sta); }else{ conVo = sta.confVo; } return conVo ; } private static ResStartVo doDealGetStart(RmiRequestVo rqVo){ ResStartVo rvo = new ResStartVo() ; rvo.start = enablemwTestStart ; int token = Integer.parseInt(rqVo.token) ; MwTestClientStatus sta = token2ClientMap.get("" + token); if(sta == null){ sta = new MwTestClientStatus() ; sta.startVo = rvo ; token2ClientMap.put("" + token, sta); }else{ sta.startVo = rvo ; } return rvo ; } private static void doDealReportCount(RmiRequestVo rqVo){ int token = Integer.parseInt(rqVo.token) ; MwTestClientStatus sta = token2ClientMap.get("" + token); if(sta == null){ sta = new MwTestClientStatus() ; sta.count = rqVo.count ; token2ClientMap.put("" + token, sta); }else{ sta.count = rqVo.count ; } } private static void doDealReportOver(RmiRequestVo rqVo){ int token = Integer.parseInt(rqVo.token) ; MwTestClientStatus sta = token2ClientMap.get("" + token); if(sta == null){ sta = new MwTestClientStatus() ; if(rqVo.over != null && rqVo.over){ sta.over = true ; sta.seconds = rqVo.seconds ; } token2ClientMap.put("" + token, sta); }else{ if(rqVo.over != null && rqVo.over){ sta.over = true ; sta.seconds = rqVo.seconds ; } } } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwConfigVo.java
New file @@ -0,0 +1,84 @@ package com.dy.testServer.forRmi; import com.alibaba.fastjson2.JSON; public class MwConfigVo { //模拟客户的RtuAddr起始号 public Long rtuAddrStart = 0L ; //模拟客户的RtuAddr截止号 public Long rtuAddrEnd = 0L ; //通信中间件IP public String tcpServerIp = "" ; //通信中间件端口 public Integer tcpServerPort = 0 ; //发送数据次数 public Integer sendTimes = 0 ; /** * 对象转成json * @return 返回 json * @throws Exception 异常 */ public String toJson()throws Exception{ try{ return JSON.toJSONString(this) ; //return new JSONSerializer().exclude(new String[]{"class", "*.class"}).deepSerialize(this); }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } /** * json转成对象 * @param json 参数 * @return 返回对象 * @throws Exception 异常 */ public static MwConfigVo jsonToObject(String json)throws Exception{ try{ return JSON.parseObject(json, MwConfigVo.class) ; //return new JSONDeserializer<ResConfigVo>().deserialize(json, ResConfigVo.class) ; }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } public Long getRtuAddrStart() { return rtuAddrStart; } public void setRtuAddrStart(Long rtuAddrStart) { this.rtuAddrStart = rtuAddrStart; } public Long getRtuAddrEnd() { return rtuAddrEnd; } public void setRtuAddrEnd(Long rtuAddrEnd) { this.rtuAddrEnd = rtuAddrEnd; } public String getTcpServerIp() { return tcpServerIp; } public void setTcpServerIp(String tcpServerIp) { this.tcpServerIp = tcpServerIp; } public Integer getTcpServerPort() { return tcpServerPort; } public void setTcpServerPort(Integer tcpServerPort) { this.tcpServerPort = tcpServerPort; } public Integer getSendTimes() { return sendTimes; } public void setSendTimes(Integer sendTimes) { this.sendTimes = sendTimes; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/MwTestClientStatus.java
New file @@ -0,0 +1,56 @@ package com.dy.testServer.forRmi; public class MwTestClientStatus { public MwConfigVo confVo ; public ResStartVo startVo ; public Integer count ;//mwTest上报数据数量 public Boolean over ;//mwTest上报数据结束 public Long seconds ;//mwTest上报数据用时(秒) public MwConfigVo getConfVo() { return confVo; } public void setConfVo(MwConfigVo confVo) { this.confVo = confVo; } public ResStartVo getStartVo() { return startVo; } public void setStartVo(ResStartVo startVo) { this.startVo = startVo; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public Boolean getOver() { return over; } public void setOver(Boolean over) { this.over = over; } public Long getSeconds() { return seconds; } public void setSeconds(Long seconds) { this.seconds = seconds; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/ResRegisterVo.java
New file @@ -0,0 +1,46 @@ package com.dy.testServer.forRmi; import com.alibaba.fastjson2.JSON; public class ResRegisterVo { public String token ; /** * 对象转成json * @return json * @throws Exception 异常 */ public String toJson()throws Exception{ try{ return JSON.toJSONString(this) ; //return new JSONSerializer().exclude(new String[]{"class", "*.class"}).deepSerialize(this); }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } /** * json转成对象 * @param json 参数 * @return 对象 * @throws Exception 异常 */ public static ResRegisterVo jsonToObject(String json)throws Exception{ try{ return JSON.parseObject(json, ResRegisterVo.class) ; //return new JSONDeserializer<ResRegisterVo>().deserialize(json, ResRegisterVo.class) ; }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } public String getToken() { return token; } public void setToken(String id) { this.token = id; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/ResStartVo.java
New file @@ -0,0 +1,63 @@ package com.dy.testServer.forRmi; import com.alibaba.fastjson2.JSON; public class ResStartVo { public boolean success = true ; public String errorInfo ; public boolean start ; /** * 对象转成json * @return json * @throws Exception 异常 */ public String toJson()throws Exception{ try{ return JSON.toJSONString(this) ; //return new JSONSerializer().exclude(new String[]{"class", "*.class"}).deepSerialize(this); }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } /** * json转成对象 * @param json 参数 * @return 对象 * @throws Exception 异常 */ public static ResStartVo jsonToObject(String json)throws Exception{ try{ return JSON.parseObject(json, ResStartVo.class) ; //return new JSONDeserializer<ResStartVo>().deserialize(json, ResStartVo.class) ; }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getErrorInfo() { return errorInfo; } public void setErrorInfo(String errorInfo) { this.errorInfo = errorInfo; } public boolean isStart() { return start; } public void setStart(boolean start) { this.start = start; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/RmiRequestVo.java
New file @@ -0,0 +1,87 @@ package com.dy.testServer.forRmi; import com.alibaba.fastjson2.JSON; public class RmiRequestVo { public String id ;//客户端ID public String token ;//服务端分配的token public String code ; public Integer count;//mwTest上报数据数量 public Boolean over ;//mwTest上报数据结束 public Long seconds ;//mwTest上报数据用时(秒) /** * 对象转成json * @return json * @throws Exception 异常 */ public String toJson()throws Exception{ try{ return JSON.toJSONString(this) ; //return new JSONSerializer().exclude(new String[]{"class", "*.class"}).deepSerialize(this); }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } /** * json转成对象 * @param json 参数 * @return 对象 * @throws Exception 异常 */ public static RmiRequestVo jsonToObject(String json)throws Exception{ try{ return JSON.parseObject(json, RmiRequestVo.class) ; //JSONDeserializer<RmiRequestVo> jsonD = new JSONDeserializer<>() ; //RmiRequestVo rqVo = jsonD.deserialize(json, RmiRequestVo.class) ; //return rqVo ; }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getToken() { return token; } public void setToken(String id) { this.token = id; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public Boolean getOver() { return over; } public void setOver(Boolean over) { this.over = over; } public Long getSeconds() { return seconds; } public void setSeconds(Long seconds) { this.seconds = seconds; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/RmiRequestedCallback.java
New file @@ -0,0 +1,36 @@ package com.dy.testServer.forRmi; import java.rmi.RemoteException; import com.dy.common.mw.channel.rmi.RmiRequestCallback; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class RmiRequestedCallback implements RmiRequestCallback { @SuppressWarnings("unused") private static Logger log = LogManager.getLogger(RmiRequestedCallback.class.getName()) ; @Override public Object syncRequest(Object obj) throws RemoteException { String json ; try { json = Manager.dealRequest(obj); } catch (Exception e) { throw new RemoteException("服务端异常" , e) ; } return json ; } @Override public String asyncRequest(Object obj) throws RemoteException { String json ; try { json = Manager.dealRequest(obj); } catch (Exception e) { throw new RemoteException("服务端异常" , e) ; } return json ; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/RmiResponseVo.java
New file @@ -0,0 +1,75 @@ package com.dy.testServer.forRmi; import com.alibaba.fastjson2.JSON; public class RmiResponseVo { public boolean success = true ; public String errorInfo ; public String code ; public Object obj ; /** * 对象转成json * @return * @throws Exception */ public String toJson()throws Exception{ try{ return JSON.toJSONString(this) ; //return new JSONSerializer().exclude(new String[]{"class", "*.class"}).deepSerialize(this); }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } /** * json转成对象 * @param json * @param clazz * @return * @throws Exception */ public static RmiResponseVo jsonToObject(String json, Class<?> clazz)throws Exception{ try{ return JSON.parseObject(json, RmiResponseVo.class) ; //JSONDeserializer<RmiResponseVo> jsonD = new JSONDeserializer<>() ; //jsonD.use("obj", clazz) ; //RmiResponseVo resp = jsonD.deserialize(json, RmiResponseVo.class) ; //return resp ; }catch(Exception e){ throw new Exception(e.getMessage() , e ) ; } } public String getCode() { return code; } public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getErrorInfo() { return errorInfo; } public void setErrorInfo(String errorInfo) { this.errorInfo = errorInfo; } public void setCode(String code) { this.code = code; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } } pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/Config.xml
New file @@ -0,0 +1,31 @@ <?xml version="1.0" encoding="UTF-8"?> <config> <server name="mwTest测试控制端" showStartInfo="true" company="http://www.dyjs.com"/> <!-- 基本配置 rtuAddrStart: 模拟客户的RtuAddr起始号 rtuAddrEnd: 模拟客户的RtuAddr截止号 rtuAddrsPerMwTest: 每个mwTest分配的RtuAddr数 tcpServerIp: 通信中间件IP tcpServerPort: 通信中间件端口 sendTimes:发送数据次数 --> <base rtuAddrStart="5323280000" rtuAddrEnd="5323289999" rtuAddrPerMwTest="1" tcpServerIp="127.0.0.1" tcpServerPort="60000" sendTimes="1" /> <!-- port:rmi服务端口号 context:rmi服务上下文 --> <rmi enable="true" port="12345" context="mwTestSv" /> </config> pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/resources/log4j2.yml
New file @@ -0,0 +1,64 @@ Configuration: #status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出;可以设置成Off(关闭)或Error(只输出错误信息) status: Error Properties: # 定义全局变量 Property: #日志文件存储的目录 - name: log.path value: ./logs #日志文件存储名称 - name: project.name value: mwTestSever #定义输出器,可以输出到控制台和文件. Appenders: #输出到控制台 Console: #Appender命名 name: CONSOLE target: SYSTEM_OUT ThresholdFilter: level: debug #输出日志级别,输出日志时,首先由Loggers.Root.level或Loggers.Logger.level判断是否输出,然后再由本level判断是否输出 onMatch: ACCEPT #onMatch=ACCEPT 大于等于 "level" 配置的等级地日志输出 onMismatch: DENY #onMismatch=DENY 小于 "level" 配置的等级地日志不输出 #日志内容样式 PatternLayout: #%n-换行 #%m-日志内容,输出代码中指定的日志信息 #%p-输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL #%r-程序启动到现在的毫秒数 #%%- 输出一个"%" 字符 #%t-当前线程名 #%d-日期和时间, 常用的格式有%d{DATE},%d{ABSOLUTE},%d{HH:mm:ss,SSS},%d{ddMMyyyyHH:mm:ss,SSS} #%l-同%F%L%C%M #%F-java源文件名 #%L-java源码行数 #%C-java类名,%C{1}输出最后一个元素 #%M-java方法名 pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" # 输出到文件,超过10MB归档 RollingFile: - name: ROLLING_FILE ignoreExceptions: false fileName: ${log.path}/${project.name}.log filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" ThresholdFilter: level: error #输出日志级别,输出日志时,首先由Loggers.Root.level或Loggers.Logger.level判断是否输出,然后再由本level判断是否输出 onMatch: ACCEPT #onMatch=ACCEPT 大于等于 "level" 配置的等级地日志输出 onMismatch: DENY #onMismatch=DENY 小于 "level" 配置的等级地日志不输出 #日志内容样式 PatternLayout: pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" Policies: SizeBasedTriggeringPolicy: size: "10 MB" DefaultRolloverStrategy: max: 1000 Loggers: Root: level: info #日志输出级别,共有8个级别,按照从低到高为:all < trace < debug < info < warn < error < fatal < off AppenderRef: #Root的子节点,用来指定该日志输出到哪个Appender. - ref: CONSOLE #输出日志时,首先由本level判断是否输出,然后再由上面的Appenders.Console.ThresholdFilter.level判断是否输出 - ref: ROLLING_FILE #输出日志时,首先由本level判断是否输出,然后再由上面的Appenders.RollingFile.ThresholdFilter.level判断是否输出 pipIrr-platform/pipIrr-mw/pom.xml
@@ -16,6 +16,7 @@ <modules> <module>pipIrr-mw-accept</module> <module>pipIrr-mwTest-server</module> </modules> <dependencies> @@ -23,41 +24,47 @@ <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> <version>1.0.0</version> <scope>provided</scope> <optional>true</optional> <exclusions> <exclusion> <!-- 排除掉pipIrr-common的所有依赖,本模块自己定义依赖 --> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>provided</scope> <optional>true</optional> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> <!-- 排除掉pipIrr-common的所有依赖,本模块自己定义依赖 --> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- @Aspect @Pointcut @Around等应用 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <!--log4j2日志--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.7</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> @@ -66,53 +73,16 @@ <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> </dependency> <!-- 系统监管 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- api在线文档 https://springdoc.org/#modules--> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-api</artifactId> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-security</artifactId> </dependency> <!--mysql驱动--> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.33</version> </dependency> <!--druid-spring-boot连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.20</version> </dependency> <!--mybatis-plus-spring-boot--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.2</version> <exclusions> <exclusion> <!-- 排除掉依赖 --> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </exclusion> </exclusions> </dependency> <!-- 阿里fastjson --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> </dependency> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> @@ -148,49 +118,8 @@ <artifactId>jdom2</artifactId> </dependency> <!-- bean和map互转换 --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>3.2.7</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </exclusion> <exclusion> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </exclusion> <exclusion> <groupId>com.alibaba.spring</groupId> <artifactId>spring-context-support</artifactId> </exclusion> <exclusion> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> </exclusion> <exclusion> <groupId>com.alibaba</groupId> <artifactId>hessian-lite</artifactId> </exclusion> <exclusion> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </exclusion> </exclusions> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> pipIrr-platform/pipIrr-web/pipIrr-web-base/pom.xml
@@ -15,4 +15,124 @@ <name>pipIrr-web-base</name> <description>web基础信息系统</description> <build> <plugins> <!-- 生成不包含依赖jar的可执行jar包 <plugin> !- spring boot提供的maven打包插件 - <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> !- <goals> <goal>repackage</goal> </goals> - <configuration> !- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar - <classifier>execute</classifier> !- 不指定生成路径的话, 默认保存在 ${build.directory} 下 - <outputDirectory>${project.build.directory}/execute</outputDirectory> <finalName>${artifactId}-${version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> --> <!-- 拷贝依赖的jar包到lib目录--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <configuration> <!-- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar <classifier>execute</classifier> --> <!-- ${project.build.directory}是maven变量,内置的,表示target目录,如果不写,将在根目录下创建/lib --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- excludeTransitive:是否不包含间接依赖包,比如我们依赖A,但是A又依赖了B,我们是否也要把B打进去 默认不打--> <excludeTransitive>false</excludeTransitive> <!-- 复制的jar文件去掉版本信息 --> <stripVersion>false</stripVersion> <finalName>${project.artifactId}-${project.version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-web/pipIrr-web-demo/pom.xml
@@ -15,5 +15,123 @@ <name>pipIrr-web-demo</name> <description>web开发演示系统,演示示例</description> <build> <plugins> <!-- 生成不包含依赖jar的可执行jar包 <plugin> !- spring boot提供的maven打包插件 - <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> !- <goals> <goal>repackage</goal> </goals> - <configuration> !- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar - <classifier>execute</classifier> !- 不指定生成路径的话, 默认保存在 ${build.directory} 下 - <outputDirectory>${project.build.directory}/execute</outputDirectory> <finalName>${artifactId}-${version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> --> <!-- 拷贝依赖的jar包到lib目录--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <configuration> <!-- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar <classifier>execute</classifier> --> <!-- ${project.build.directory}是maven变量,内置的,表示target目录,如果不写,将在根目录下创建/lib --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- excludeTransitive:是否不包含间接依赖包,比如我们依赖A,但是A又依赖了B,我们是否也要把B打进去 默认不打--> <excludeTransitive>false</excludeTransitive> <!-- 复制的jar文件去掉版本信息 --> <stripVersion>false</stripVersion> <finalName>${project.artifactId}-${project.version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrDemo.PipIrrDemoApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-web/pipIrr-web-gis/pom.xml
@@ -15,5 +15,123 @@ <name>pipIrr-web-gis</name> <description>web电子地图系统</description> <build> <plugins> <!-- 生成不包含依赖jar的可执行jar包 <plugin> !- spring boot提供的maven打包插件 - <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> !- <goals> <goal>repackage</goal> </goals> - <configuration> !- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar - <classifier>execute</classifier> !- 不指定生成路径的话, 默认保存在 ${build.directory} 下 - <outputDirectory>${project.build.directory}/execute</outputDirectory> <finalName>${artifactId}-${version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> --> <!-- 拷贝依赖的jar包到lib目录--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <configuration> <!-- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar <classifier>execute</classifier> --> <!-- ${project.build.directory}是maven变量,内置的,表示target目录,如果不写,将在根目录下创建/lib --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- excludeTransitive:是否不包含间接依赖包,比如我们依赖A,但是A又依赖了B,我们是否也要把B打进去 默认不打--> <excludeTransitive>false</excludeTransitive> <!-- 复制的jar文件去掉版本信息 --> <stripVersion>false</stripVersion> <finalName>${project.artifactId}-${project.version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrGis.PipIrrGisApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-web/pipIrr-web-remote/pom.xml
@@ -15,4 +15,123 @@ <name>pipIrr-web-remote</name> <description>web远程操作信息系统</description> <build> <plugins> <!-- 生成不包含依赖jar的可执行jar包 <plugin> !- spring boot提供的maven打包插件 - <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> !- <goals> <goal>repackage</goal> </goals> - <configuration> !- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar - <classifier>execute</classifier> !- 不指定生成路径的话, 默认保存在 ${build.directory} 下 - <outputDirectory>${project.build.directory}/execute</outputDirectory> <finalName>${artifactId}-${version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> --> <!-- 拷贝依赖的jar包到lib目录--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <configuration> <!-- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar <classifier>execute</classifier> --> <!-- ${project.build.directory}是maven变量,内置的,表示target目录,如果不写,将在根目录下创建/lib --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- excludeTransitive:是否不包含间接依赖包,比如我们依赖A,但是A又依赖了B,我们是否也要把B打进去 默认不打--> <excludeTransitive>false</excludeTransitive> <!-- 复制的jar文件去掉版本信息 --> <stripVersion>false</stripVersion> <finalName>${project.artifactId}-${project.version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrRemote.PipIrrRemoteApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-web/pipIrr-web-sso/pom.xml
@@ -36,4 +36,124 @@ <!-- 自动判断使用与spring boot兼容的版本 --> </dependency> </dependencies> <build> <plugins> <!-- 生成不包含依赖jar的可执行jar包 <plugin> !- spring boot提供的maven打包插件 - <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> !- <goals> <goal>repackage</goal> </goals> - <configuration> !- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar - <classifier>execute</classifier> !- 不指定生成路径的话, 默认保存在 ${build.directory} 下 - <outputDirectory>${project.build.directory}/execute</outputDirectory> <finalName>${artifactId}-${version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> --> <!-- 拷贝依赖的jar包到lib目录--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <configuration> <!-- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar <classifier>execute</classifier> --> <!-- ${project.build.directory}是maven变量,内置的,表示target目录,如果不写,将在根目录下创建/lib --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- excludeTransitive:是否不包含间接依赖包,比如我们依赖A,但是A又依赖了B,我们是否也要把B打进去 默认不打--> <excludeTransitive>false</excludeTransitive> <!-- 复制的jar文件去掉版本信息 --> <stripVersion>false</stripVersion> <finalName>${project.artifactId}-${project.version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.sso.PipIrrSsoApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-web/pipIrr-web-statistics/pom.xml
@@ -15,4 +15,123 @@ <name>pipIrr-web-statistics</name> <description>web统计分析系统</description> <build> <plugins> <!-- 生成不包含依赖jar的可执行jar包 <plugin> !- spring boot提供的maven打包插件 - <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> !- <goals> <goal>repackage</goal> </goals> - <configuration> !- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar - <classifier>execute</classifier> !- 不指定生成路径的话, 默认保存在 ${build.directory} 下 - <outputDirectory>${project.build.directory}/execute</outputDirectory> <finalName>${artifactId}-${version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> --> <!-- 拷贝依赖的jar包到lib目录--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <configuration> <!-- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar <classifier>execute</classifier> --> <!-- ${project.build.directory}是maven变量,内置的,表示target目录,如果不写,将在根目录下创建/lib --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- excludeTransitive:是否不包含间接依赖包,比如我们依赖A,但是A又依赖了B,我们是否也要把B打进去 默认不打--> <excludeTransitive>false</excludeTransitive> <!-- 复制的jar文件去掉版本信息 --> <stripVersion>false</stripVersion> <finalName>${project.artifactId}-${project.version}</finalName> <layout>ZIP</layout> <mainClass>com.dy.pipIrrStatistics.PipIrrStatisticsApplication</mainClass> <includes> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-common</artifactId> </include> <include> <groupId>com.dy</groupId> <artifactId>pipIrr-global</artifactId> </include> </includes> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> </project> pipIrr-platform/pipIrr-web/pipIrr-web.iml
@@ -23,6 +23,9 @@ <orderEntry type="jdk" jdkName="20" jdkType="JavaSDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="module" module-name="pipIrr-common" /> <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.2" level="project" /> <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" /> <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" /> <orderEntry type="module" module-name="pipIrr-global" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.1.3" level="project" /> pipIrr-platform/pipIrr-web/pom.xml
@@ -210,58 +210,6 @@ <artifactId>junit</artifactId> <scope>test</scope> </dependency> <!-- <!– 全局排除–>--> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-json</artifactId>--> <!-- <exclusions>--> <!-- <exclusion>--> <!-- <groupId>*</groupId>--> <!-- <artifactId>*</artifactId>--> <!-- </exclusion>--> <!-- </exclusions>--> <!-- </dependency>--> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-logging</artifactId>--> <!-- <exclusions>--> <!-- <exclusion>--> <!-- <groupId>*</groupId>--> <!-- <artifactId>*</artifactId>--> <!-- </exclusion>--> <!-- </exclusions>--> <!-- </dependency>--> </dependencies> <build> <plugins> <plugin> <!-- spring boot提供的maven打包插件 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <!-- 强制设定 java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> </plugins> </build> </project> pipIrr-platform/pom.xml
@@ -44,8 +44,15 @@ <mapstruct.version>1.5.5.Final</mapstruct.version> <hutool-all.version>5.8.22</hutool-all.version> <org-jdom2.version>2.0.6.1</org-jdom2.version> <compiler-plugin.version>3.11.0</compiler-plugin.version> <surefire-plugin.version>3.0.0</surefire-plugin.version> <spring-boot-maven-plugin.version>3.2.0</spring-boot-maven-plugin.version> <maven-jar-plugin-plugin.version>3.3.0</maven-jar-plugin-plugin.version> <maven-dependency-plugin.version>3.5.0</maven-dependency-plugin.version> <maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version> <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version> <maven-surefire-plugin.version>3.0.0</maven-surefire-plugin.version> <maven-bundle-plugin.version>5.1.9</maven-bundle-plugin.version> <encoding>UTF-8</encoding> </properties> @@ -243,14 +250,7 @@ <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-core</artifactId> <version>2.2.1</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-filter-compression</artifactId> <version>2.2.1</version> <version>2.2.2</version> <type>pom</type> <scope>import</scope> </dependency> @@ -297,34 +297,66 @@ <!-- spring boot提供的maven打包插件 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.1.3</version> <version>${spring-boot-maven-plugin.version}</version> </plugin> <plugin> <!-- 该插件不会将项目中引入的依赖打进最终的 Jar 文件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${maven-jar-plugin-plugin.version}</version> </plugin> <plugin> <!-- 当项目中依赖比较多时,我们可以借助 maven-dependency-plugin 插件自动帮我们下载依赖的 Jar 文件,推荐将该插件绑定到package生命周期上 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${maven-dependency-plugin.version}</version> <executions> <execution> <!-- 绑定生命周期 --> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <!-- 设置依赖的存放路径 --> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <!-- 设置java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- 解决资源文件的编码问题 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${maven-resources-plugin.version}</version> <configuration> <encoding>${encoding}</encoding> </configuration> </plugin> <plugin> <!-- maven里执行测试用例的插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0</version> <configuration> <skipTests>true</skipTests> </configuration> <version>${maven-surefire-plugin.version}</version> </plugin> <plugin> <!-- 强制设定 java编译版本,运行环境版本 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${compiler-plugin.version}</version> <configuration> <source>20</source> <target>20</target> </configuration> <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>${maven-bundle-plugin.version}</version> <extensions>true</extensions> </plugin> </plugins> </pluginManagement>