今天测试说要有一个本地运行的服务器项目,这样测试器游戏来可以随意修改,无需通知服务器。那简单啊,直接打包丢给他即可。
config:项目配置文件
res:项目的json文件
lib:项目的jar包
log:启动日志
startUp.bat: 启动脚本
@echo off
SetLocal EnableDelayedExpansion
FOR %%i IN (".\lib\*.jar") DO SET CLASSPATH=!CLASSPATH!;%%~fsi
echo %CLASSPATH%
.\jre1.8.0_212\bin\java com.xxx.mengfusheng.ServerMain
EndLocal
第一句:启用变量延迟;
第二句:循环将.jar文件加入,并以短路径的形式加入;
比如:C:\Program Files\lib\XXX.jar
变为:C:\Progra~1\lib\XXX.jar
第三句:显示设置后的CLASSPATH值;
第四句:还原系统环境设置
注意:第二句的!CLASSPATH! 与 %%~fsi 的写法,特别是!CLASSPATH!而不是%CLASSPATH%
如果是想以相对径的加入到CLASSPATH的话,就直接用
代码如下
FOR %%i IN ("./lib/*.jar") DO SET CLASSPATH=!CLASSPATH!;%%i
#!/bin/sh
CP=.
for i in ./lib/*.jar
do
CP="$i:$CP"
done
java -cp "$CP" com.xxx.mengfusheng.ServerMain &
<build>
<resources>
<resource>
<directory>src/main/resourcesdirectory>
<filtering>truefiltering>
resource>
resources>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-jar-pluginartifactId>
<configuration>
<archive>
<manifestEntries>
<Class-Path>resources/Class-Path>
<Agent-Class>hotupdate.agent.MyAgentAgent-Class>
<Can-Redefine-Classes>trueCan-Redefine-Classes>
<Can-Retransform-Classes>trueCan-Retransform-Classes>
manifestEntries>
<manifest>
<addClasspath>trueaddClasspath>
manifest>
archive>
<excludes>
<exclude>**/*.xmlexclude>
<exclude>**/*.txtexclude>
<exclude>**/*.propertiesexclude>
<exclude>**/*/*.jsonexclude>
excludes>
configuration>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.6.1version>
<configuration>
<source>1.8source>
<target>1.8target>
<encoding>UTF-8encoding>
configuration>
plugin>
plugins>
build>
mvn dependency:copy-dependencies -DoutputDirectory=target/lib package