怎么把java maven工程打包

Python015

怎么把java maven工程打包,第1张

第一步:在你的pom.xml中添加

1<plugin>

2<artifactId>maven-assembly-plugin</artifactId>

3<version>2.2</version>

4<configuration>

5 <archive>

6 <manifest>

7 <mainClass>cn.com.threetcloud.agent.server.BrokerServer</mainClass>

8 </manifest>

9 </archive>

10 <descriptorRefs>

11 <descriptorRef>

12 jar-with-dependencies

13 </descriptorRef>

14 </descriptorRefs>

15</configuration>

16 </plugin>

第二步:CMD进入到自己的工程文件夹下进行mvn assembly:assembly操作

我的工程是在D:\workspace\test

那么操作步骤是

1:cmd回车

2:d:回车

3:cd workspace回车

4:cd test回车

5:mvn assembly:assembly回车

第三步:CMD通过java命令运行刚才导出的jar文件,一般导出后在自己工程的target文件夹下面

我的jar导出后在D:\workspace\test\target\agent-server-0.0.1-jar-with-dependencies.jar

那么操作步骤是

1:cmd回车

2:d:回车

3:cd workspace回车

4:cd test回车

5:cd target回车

5:java -jar agent-server-0.0.1-jar-with-dependencies.jar回车

到此结束。

一. jar命令用法:

在cmd命令窗口下输入jar,回车,就会提示改命令的用法:

二.例子(这里介绍的都是生成双击可执行的jar包):

1.首先介绍如何在命令行下执行打包程序。

1.1.没有包结构的最简单的工程。

(1)在c:盘下新建文件“HelloWorld.java”:

1 public class HelloWorld

2 {

3 public static void main(String[] args){

4 System.out.println("Hello world!")

5 }

6 }

(2)在命令行下输入c:\javac HelloWorld.java,在c:盘下编译生成“HelloWorld.class”。

(3)在c:盘下新建文件“menefest”(没有后缀名):

Main-Class: HelloWorld

注意最后要有一个空行,否则会出现找不到类的错误。

(4)打包:输入c:\jar cvmf menifest HelloWorld.jar HelloWord.jar HelloWorld.class,在c:盘下生成“HelloWorld.jar”。

(5)执行:输入c:\java -jar HelloWord.jar。屏幕回显“HelloWorld”。

1.2.有包结构的java工程。

(1)在c:\com\gosyl\demo\下新建文件“HelloWorld.java”:

package com.gosyl.demo

public class HelloWorld{

public static void main(String[] args){

System.out.println("HelloWorld")

}

}

(2)在命令行下输入c:\javac com/gosyl/demo/HelloWorld.java,在c:\com\gosyl\demo\文件夹下编译生成“HelloWorld.class”。

(3)在c:盘下新建文件“menefest2”(没有后缀名):

Main-Class: com.gosyl.demo.HelloWorld

注意最后要有一个空行,冒号后面要一个空格。否则会出现找不到类的错误。

(4)打包:输入c:\jar cvmf menifest2 HelloWorld.jar HelloWord.jar com/,在c:盘下生成“HelloWorld.jar”。

(5)执行:输入c:\java -jar HelloWord.jar。屏幕回显“HelloWorld”。

1.3.引用到外部jar包的java工程。

(1)在c:\com\gosyl\demo\下新建文件“Car.java”:

package com.gosyl.demo

public class Car

{

public static void main(String[] args){

Light.on()

}

}

(2)在c:\com\gosyl\demo\下新建文件“Light.java”:

package com.gosyl.demo

class Light

{

public static void on(){

System.out.println("Light is on!")

}

}

(3)打包1:输入c:\jar cvf Light.jar com/gosyl/demo/Light.class,在c:盘下生成“Light.jar”。

(4)在c:盘下新建文件“menefest-car”(没有后缀名):

Main-Class: com.gosyl.demo.Car

Class-Path: Light.jar

注意最后要有一个空行,冒号后面要一个空格。否则会出现找不到类的错误。

(5)打包2:输入c:\jar cvmf menifest-car Car.jar com/gosyl/demo/Car.class,在c:盘下生成“Car.jar”。

(6)执行:输入c:\java -jar Car.jar。屏幕回显“Light is on”。

三.总结

1.清单文件menifest,对格式要求很高,注意每个冒号后面要有一个空格,文件最后要有一个空行。

2.对于引用到外部jar包的工程,需要在manifest中定义好Class-Path属性。

3.对于双击.bat文件出现刷屏现象的情况,请直接把.bat文件的内容键入命令行执行。

4.对于重复签名的jar包,在META-INF里面会出现多个签名文件,删除掉多余的,保存其中一个才能保证jws正常启动。