整个项目打包到现场部署需要大量成本的时候,编写一个单功能的测试小程序部署就会便捷很多。直接上教程
1、通过idea创建一个普通的maven项目
image.png
image.png
2、找到自己需要用的第三方jar包,此处使用commons-collections-3.2.1.jar
3、在项目文件夹中创建lib文件夹,如图
image.png
4、将第三方jar包复制到lib文件夹中,然后右键选择添加到资源库中
image.png
image.png
5、修改pom文件内容,如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SMS</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- 添加自己引用的第三方包 -->
<dependency>
<!-- 这个随便写 -->
<groupId>org.example</groupId>
<!-- 这个随便写 -->
<artifactId>SMS</artifactId>
<!-- 这个随便写 -->
<version>1.0-SNAPSHOT</version>
<!-- 这个很重要 -->
<scope>system</scope>
<!-- 这个路径不能错,错了idea会提示,正确idea会自动带出 -->
<systemPath>${basedir}/lib/commons-collections-3.2.1.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<!--<addClasspath>true</addClasspath> -->
<classpathPrefix></classpathPrefix>
<!-- 这个是主启动类,里面必须有main方法 -->
<mainClass>Test3</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
6、编写java代码
import org.apache.commons.collections.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
public class Test3 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
// 调用第三方包里面的函数
System.out.println("数组大小:" + CollectionUtils.size(list));
}
}
7、使用idea右侧的maven打包
image.png
8、在target目录下创建run.bat文件
image.png
9、编写如下命令,然后运行测试
@echo off
set jdk_path=D:\Java\jdk1.7.0.79
set java_cmd=%jdk_path%\bin\java
%java_cmd% -Xbootclasspath/a:..\lib\commons-collections-3.2.1.jar -jar .\SMS-1.0-SNAPSHOT.jar
pause
注意:如果需要引入的第三方包是多个,在Windows中用分号;隔开,在Linux中用冒号:隔开
10、结果如下
image.png
11、有时候为了不重新打包直接修改一些参数值,需要引入外部配置文件,这时需要编写如下代码获取配置文件中的值
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class Test {
private static String comPorts;
private static int baudRate;
private static String simPin;
private static String manufacture;
private static String model;
private static String sendContent;
private static String receivers;
public static void main(String[] args) throws IOException {
initParameters(args);
System.out.println(comPorts);
System.out.println(baudRate);
System.out.println(simPin);
System.out.println(manufacture);
System.out.println(model);
System.out.println(sendContent);
System.out.println(receivers);
}
private static void initParameters(String[] args) throws IOException {
Properties properties = new Properties();
if (args.length != 0) {
FileReader fileReader = new FileReader(args[0]);
properties.load(fileReader);
comPorts = properties.getProperty("comPorts");
baudRate = Integer.parseInt(properties.getProperty("baudRate"));
simPin = properties.getProperty("simPin");
manufacture = properties.getProperty("manufacture");
model = properties.getProperty("model");
sendContent = properties.getProperty("sendContent");
receivers = properties.getProperty("receivers");
}
}
}
12、创建配置文件,如下
image.png
13、配置文件内容为
#----------------------短信网关配置-------------------------
#短信设备COM端口号
comPorts=COM1
#短信设备波特率:115200,19200,9600
baudRate=115200
#短信SIM卡PIN码
simPin=0000
#短信设备厂商
manufacture=sms
#短信设备型号
model=123
#发送内容
sendContent=1212
#接收人
receivers=00000000000
14、这时启动时需要指定配置文件
@echo off
set current_path=%~dp0
set jdk_path=D:\Java\jdk1.7.0.79
set java_cmd=%jdk_path%\bin\java
%java_cmd% -Xbootclasspath/a:..\lib\commons-collections-3.2.1.jar -jar .\single_function_project-1.0-SNAPSHOT.jar %current_path%\gateway-config.properties
pause