mavn配置
<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>*.*</include> //将resource资源全部加载进来,防止启动后排除文件 </includes> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <!-- <descriptorRefs> --> <!-- <descriptorRef>jar-with-dependencies</descriptorRef> --> <!-- </descriptorRefs> --> <descriptors> <descriptor>assembly.xml</descriptor> </descriptors> <archive> <manifest> <mainClass>test.main</mainClass> //这里是打包后项目的入口 </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <!-- this is used for inheritance merges --> <phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 --> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <!--<plugin>--> <!--<groupId>org.codehaus.mojo</groupId>--> <!--<artifactId>cobertura-maven-plugin</artifactId>--> <!--<version>2.6</version>--> <!--</plugin>--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-Dfile.encoding=UTF-8</argLine> </configuration> </plugin> </plugins> </build>
assembly.xml
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>rmbcmds_demo</id> <formats> <!--<format>tar.gz</format>--> <format>zip</format> </formats> <fileSets> <!--配置文件拷贝--> <fileSet> <directory>${project.basedir}/cfg</directory> <outputDirectory>/cfg</outputDirectory> <includes> <include>**</include> </includes> </fileSet> <fileSet> <directory>${project.basedir}/src/main/resources</directory> <outputDirectory>/cfg</outputDirectory> <includes> <include>log4j.properties</include> </includes> </fileSet> <fileSet> <directory>${project.basedir}/src/main/resources</directory> <outputDirectory>/</outputDirectory> <includes> <include>application-*.yml</include> </includes> </fileSet> <!--启动脚本的拷贝--> <fileSet> <directory>${project.basedir}/src/main/resources/bin</directory> <outputDirectory>/bin</outputDirectory> <includes> <include>*.bat</include> <include>*.sh</include> </includes> </fileSet> //压缩包启动的脚本存放的地方 </fileSets> <dependencySets> <dependencySet> <outputDirectory>/lib</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <scope>runtime</scope> </dependencySet> </dependencySets> </assembly> //将所有的依赖打包出来放在/lib目录下
附上该种目录结构下的 bat启动脚本