java打包jar包和lib分开的包

发布时间 2023-11-21 08:11:16作者: Mr·柯

<build>
<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>lib</extdirs><!--指定外部lib-->
</compilerArguments>
</configuration>
</plugin>


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>

</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<!--指定main入口 -->
<mainClass>com.example.cadretraining.CadretrainingApplication</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>

<manifestEntries>
<Class-Path>conf/</Class-Path>
</manifestEntries>
</archive>
<includes>
<!-- 打jar包时,只打包class文件 -->
<include>**/*.class</include>
</includes>

</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<!-- 使用默认的变量标记方法即${*} -->
<useDefaultDelimiters>true</useDefaultDelimiters>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>


<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>

<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>user-cadreTraining-${environment}</finalName>
<resources>
<resource>
<!--<directory>${basedir}/src/main/resources</directory>-->
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.yml</include>
<include>application-${environment}.yml</include>
<include>ehcache/**</include>
<include>static/**</include>
<include>mybatis/**</include>
<include>templates/**</include>
<include>banner.*</include>
<include>META-INF/**</include>
<include>i18n/**</include>
<include>mapper/**</include>
</includes>
<excludes>
<exclude>assembly.xml</exclude>
</excludes>
</resource>

</resources>
</build>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

assembly.xml文件

<!--
- Copyright 1999-2011 Alibaba Group.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-->
<assembly>
<id>assembly</id>
<formats>
<format>tar.gz</format>
</formats>
<!--tar.gz压缩包下是否生成和项目名相同的根目录-->
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<!--<fileSet>-->
<!--<directory>../src/assembly/bin</directory>-->
<!--<outputDirectory>bin</outputDirectory>-->
<!--<fileMode>0755</fileMode>-->
<!--</fileSet>-->

<!--<fileSet>-->
<!--<directory>${basedir}/src/assembly/bin</directory>-->
<!--<outputDirectory>.</outputDirectory>-->
<!--<fileMode>0777</fileMode>-->
<!--</fileSet>-->

<!--<fileSet>-->
<!--<directory>src/main/resources</directory>-->
<!--<outputDirectory>conf</outputDirectory>-->
<!--<fileMode>0644</fileMode>-->
<!--</fileSet>-->
<fileSet>
<directory>${parent.basedir}/src/assembly/bin</directory>
<outputDirectory>.</outputDirectory>
<fileMode>0777</fileMode>
</fileSet>
<fileSet>
<directory>${basedir}/conf</directory>
<outputDirectory>.</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<!--<fileSet>-->
<!--<directory>../webCode</directory>-->
<!--<outputDirectory>conf/static</outputDirectory>-->
<!--<fileMode>0755</fileMode>-->
<!--</fileSet>-->

<fileSet>
<directory>${project.build.directory}/classes</directory>
<outputDirectory>conf</outputDirectory>
<fileMode>0755</fileMode>
<includes>
<include>*.properties</include>
<include>*.yml</include>
<include>*.xml</include>
<include>static/**</include>
<include>i18n/**</include>
<include>META-INF/**</include>
<include>mybatis-INF/**</include>
<include>logback.xml</include>
<include>mybatis/**</include>
</includes>
</fileSet>

<fileSet>
<directory>${project.build.directory}/classes/lib</directory>
<outputDirectory>lib</outputDirectory>
<fileMode>0755</fileMode>
<includes>
<include>**/*.jar</include>
</includes>
</fileSet>

<!--<fileSet>-->
<!--<directory>src/main/resources/lib</directory>-->
<!--<outputDirectory>lib/</outputDirectory>-->
<!--<includes>-->
<!--<include>**/*.*</include>-->
<!--</includes>-->
<!--</fileSet>-->

<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>.</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>

<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
<excludes>
<exclude>${groupId}:${artifactId}</exclude>
</excludes>
</dependencySet>
<!--<dependencySet>-->
<!--&lt;!&ndash;是否把本项目添加到依赖文件夹下&ndash;&gt;-->
<!--&lt;!&ndash;<useProjectArtifact>true</useProjectArtifact>&ndash;&gt;-->
<!--<outputDirectory>lib</outputDirectory>-->
<!--&lt;!&ndash;<unpack>true</unpack>&ndash;&gt;-->
<!--&lt;!&ndash;将scope为system的依赖包打包&ndash;&gt;-->
<!--<scope>system</scope>-->

<!--</dependencySet>-->


</dependencySets>




</assembly>