windows环境下运行java的脚本
程序员文章站
2022-07-09 13:47:15
...
前几天研发时遇到eclipse运行不稳定的情况,明明实现了的功能有的时候能运行到,有时运行不到,非常让人头疼。于是想在本地搭一套运行环境,方便比较。
说明:以下情况主要针对java运行
首先考虑Application。maven编译Spring Boot默认打的包是fatjar,所以比较好处理。此处重点考虑传统Application。也可以考虑打成fatjar。用Eclipse->Export 安装fatjar插件\引入maven-shade-plugin插件或assembly插件,均不如意。要么方法费劲还容易错,要么影响到正常使用方式。考虑再三,决定用shell脚本组装常规使用方式实现。脚本如下。
保存为start.sh,直接运行shell就可以了。
注:我在pc上安装了git,git-bash环境里面常用的linux指令都可以使用,很方便。
对于war类型的,可以引入新的插件,
修改pom如下
命令行:mvn tomcat7:run 就可以运行。
也可以搭建一套tomcat运行环境(主要修改运行端口),然后通过脚本将war包拷贝到webapps下运行,我的启动脚本
说明:以下情况主要针对java运行
首先考虑Application。maven编译Spring Boot默认打的包是fatjar,所以比较好处理。此处重点考虑传统Application。也可以考虑打成fatjar。用Eclipse->Export 安装fatjar插件\引入maven-shade-plugin插件或assembly插件,均不如意。要么方法费劲还容易错,要么影响到正常使用方式。考虑再三,决定用shell脚本组装常规使用方式实现。脚本如下。
cur_path="${运行目录}" echo "当前目录:"$cur_path projectPath="${工程目录}" subProject="{目标工程名}" echo "项目目录:"$projectPath cd $projectPath mvn clean echo "拷贝jar包" mvn dependency:copy-dependencies -DoutputDirectory=$cur_path"/lib" -pl $subProject echo "编译工程" mvn compile -pl $subProject -DskipTests echo "拷贝编译结果" cp -fr $subProject/target/classes/ $cur_path cd $cur_path x=`ls lib/*.jar` CL=".;classes" for y in $x do CL="$y;$CL" done CL=$CL echo "类路径:$CL" echo "java -cp $CL mainClass $* " > $cur_path/start.bat 2>&1 echo "succ" ./start.bat
保存为start.sh,直接运行shell就可以了。
注:我在pc上安装了git,git-bash环境里面常用的linux指令都可以使用,很方便。
对于war类型的,可以引入新的插件,
修改pom如下
<plugins> <!-- tomcat插件控制 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!--端口控制--> <port>8180</port> <!--项目路径控制意味着http://localhost:8080/abc--> <path>/abc</path> <!--编码--> <uriEncoding>UTF-8</uriEncoding> </configuration> </plugin> </plugins>
命令行:mvn tomcat7:run 就可以运行。
也可以搭建一套tomcat运行环境(主要修改运行端口),然后通过脚本将war包拷贝到webapps下运行,我的启动脚本
run_home="${运行目录}" projectPath="项目根目录" subProject="web项目名" sh ./shutdown.sh; sleep 5; rm -rf $run_home/webapps/*; echo "项目目录:"$projectPath cd $projectPath mvn clean package -pl $subProject -am -DskipTests cp -f $subProject/target/*.war $run_home/webapps/; sh $run_home/bin/startup.sh; echo "publish complete."
上一篇: JAVA SPI详解