org.apache.maven.plugins
maven-jar-plugin
true
lib/
org.apache.maven.plugins
maven-dependency-plugin
copy
install
copy-dependencies
${project.build.directory}/lib
使用
插件中的mainClass 需要怎么写?
参考下我的gist:maven onejar打包
利用maven-jar-plugin和maven-dependency-plugin打包可执行jar,实现fatjar的onejar打包功能;另结合maven-antrun-plugin处理外部资源
<!-- generate onejar manifest -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.lt.uadb.distributor.main.DistributorMain</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- copy dependency to lib dir -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${output.dir}/lib</outputDirectory>
<includeScope>compile</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<!-- copy resources to bin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<property name="output.dir" value="${output.dir}" />
<property name="project.basedir" value="${project.basedir}" />
<ant antfile="build.xml">
<target name="copy.resources" />
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
含有main函数的启动类路径,例如
<configuration>
<mainClass>com.example.MainClass</mainClass>
<arguments>
.....
</arguments>
</configuration>