maven打包体式格局
运用maven打包插件maven-jar-plugin
在pom.xml
文件末了新增以下代码。maven-dependency-plugin
是指将依靠的jar包复制到指定目次maven-resources-plugin
将依靠的resources复制到指定目次
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <!-- 是不是依靠外部jar包 --> <addClasspath>true</addClasspath> <!-- 依靠外部jar包途径 --> <classpathPrefix>lib/</classpathPrefix> <!-- 启动函数 --> <mainClass>com.alibaba.dubbo.container.Main</mainClass> </manifest> </archive> <!-- 打包以后输出目次 --> <outputDirectory>${project.build.directory}/maven-archiver</outputDirectory> <!-- 剔除已打包的配置文件 --> <excludes> <exclude>*.*</exclude> <exclude>config/*</exclude> <exclude>config/tencent/*</exclude> <exclude>META-INF/spring/*</exclude> </excludes> </configuration> </plugin> <!-- 拷贝依靠的jar包到lib目次 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/maven-archiver/lib </outputDirectory> </configuration> </execution> </executions> </plugin> <!-- 拷贝依靠的资本文件包到resources目次 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/maven-archiver/resources</outputDirectory> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </build>
- 运转jar包体式格局
打包以后的目次构造
包括了class文件,以及须要的配置文件信息(不包括excludes的配置文件)
在MANIFEST.MF
中包括了运转须要的信息
Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar ... Main-Class: com.alibaba.dubbo.container.Main
java -jar
启动敕令
java -jar 执行敕令时,会用到目次META-INFMANIFEST.MF中Main-Class的参数,这个是在打包的时刻指定函数的进口。
java -jar x-0.0.1-SNAPSHOT.jar
java -cp
启动敕令
java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
由于我工程中须要援用外部的resources文件所以我通经常使用这类体式格局启动
配置文件地点是绝对途径
java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main
-cp
和-classpath
是雷同的结果
java -cp 是指定运转所依靠其他类的途径,通常是类库、jar 包之类,多个依靠在Window
上用分号";"离隔,linux
上用":"离隔。
表达式支撑通配符
java -cp .:/Users/username/*.jar packname.mainclassname
- 打成一个jar包
假如须要将依靠的jar包都到达一个jar包中运转,能够运用maven-shade-plugin
这个插件。
这个插件的功用主如果:将依靠的jar包打包到当前jar包,并且在打包的时刻把类重命名,能够处理jar包的多版本争执,细致能够查询官方插件文档。
相干教程:Java视频教程
以上就是怎样用maven将dubbo工程打成jar包来运转的细致内容,更多请关注ki4网别的相干文章!