首页 > maven 打包可执行jar问题

maven 打包可执行jar问题


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>
【热门文章】
【热门文章】