Maven快速搭建GUI项目

一、eclipse安装好maven插件,并将maven集成到eclipse之后,用maven的archetype,搭建好一个maven-archetype-queckstart项目的骨架。

二、可执行jar文件分为两种,一种是可通过命令行java -jar xxx.jar 可以直接运行的jar文件,一种是工其他jar文件调用的jar文件。第一种jar文件的META-INF文件夹下的manifest.MF文件含有Main-Class值,第二种jar文件则不包含。第一种的jar文件可以直接运行的原因是,其可以直接调用到其所依赖依赖的jar包,第一种方式是直接在manifest.MF文件中配上Class-Path的值,第二种方式可以将所依赖的jar文件一起打包进该jar包,可以通过maven插件,下面提供两种插件方式。

第一种:
<build>
      <plugins>
      <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.sinoi.APP</mainClass> 
                </manifest>  
            </archive>  
        </configuration>  
      </plugin>
     </plugins> 
  </build>
运行mvn clean package即可

批注:
经过我本人自测之后发现,这种方式虽然可以打包,但是不会将依赖包也添加进去。可以手动将依赖包配到<classpathPrefix>元素的路径下,然后命令行运行。

第二种:
<plugin> 
    <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>           
   <version>2.3</version> 
    <configuration> 
      <appendAssemblyId>false</appendAssemblyId>       
      <descriptorRefs> 
           <descriptorRef>jar-with-dependencies<descriptorRef> 
      </descriptorRefs> 
     <archive> 
         <manifest> 
             <mainClass>com.HelloWorld</mainClass> 
       </manifest> 
      </archive>
    </configuration> 
  <executions> 
    <execution> 
    <id>make-assembly</id> 
    <phase>package</phase> 
    <goals> 
      <goal>assembly</goal> 
    </goals> 
    </execution> 
  </executions> 
</plugin>
运行mvn assembly:assembly ( 我自己使用mvn clean package也是可以的) 

批注:
这个方式和方式1不同,这种打包方式,将项目及所依赖的所有jar文件以类的方式打入jar包,让打出来的JAR包成为一个可独立运行的JAR包
原文地址:https://www.cnblogs.com/iwideal/p/6021531.html