好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java中Maven项目导出jar包配置的示例代码

具体代码如下所示;

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

<!-- 第一种打包方式 (maven-jar-plugin), 将依赖包和配置文件放到jar包外 -->

<build>

   <sourcedirectory>src/main/java</sourcedirectory>

   <resources>

     <resource>

       <directory>src/main/resources</directory>

       <!-- 将<directory>目录下的文件打包到<targetpath>下 -->

       <targetpath>${project.build.directory}</targetpath>

       <excludes>

         <exclude>** /*.java</exclude>

       </excludes>

     </resource>

   </resources>

   <testsourcedirectory>src/test/java</testsourcedirectory>

   <testresources>

     <testresource>

       <directory>src/test/resources</directory>

       <filtering>true</filtering>

       <excludes>

         <exclude>**/ *.java</exclude>

       </excludes>

     </testresource>

   </testresources>

   <plugins>

     <plugin>

       <groupid>org.apache.maven.plugins</groupid>

       <artifactid>maven-compiler-plugin</artifactid>

       <version> 2.3 . 2 </version>

       <configuration>

         <source> 1.8 </source>

         <target> 1.8 </target>

         <encoding>utf- 8 </encoding>

       </configuration>

     </plugin>

     <!-- 将项目依赖包复制到<outputdirectory>指定的目录下 -->

     <plugin>

       <groupid>org.apache.maven.plugins</groupid>

       <artifactid>maven-dependency-plugin</artifactid>

       <executions>

         <execution>

           <id>copy-dependencies</id>

           <phase> package </phase>

           <goals>

             <goal>copy-dependencies</goal>

           </goals>

           <configuration>

             <outputdirectory>

               ${project.build.directory}/lib

             </outputdirectory>

           </configuration>

         </execution>

       </executions>

     </plugin>

     <!-- 将项目依赖包的路径(与上一项中的<outputdirectory>对应)添加到classpath中 -->

     <plugin>

       <groupid>org.apache.maven.plugins</groupid>

       <artifactid>maven-jar-plugin</artifactid>

       <configuration>

         <archive>

           <manifest>

             <addclasspath> true </addclasspath>

             <classpathprefix>lib/</classpathprefix>

             <mainclass>com.ctbri.echorisk.applicationstart</mainclass>

           </manifest>

           <manifestentries>

             < class -path>./</ class -path>

           </manifestentries>

         </archive>

       </configuration>

     </plugin>     

   </plugins>

</build>

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

<!-- 第二种打包方式 (maven-shade-plugin), 将依赖包和配置文件放到jar包内 -->

<build>   

   <directory>${project.basedir}/target</directory>

   <finalname>${project.artifactid}-${project.version}</finalname>

   <plugins>

     <plugin>

       <groupid>org.apache.maven.plugins</groupid>

       <artifactid>maven-surefire-plugin</artifactid>

       <version> 2.21 . 0 </version>

       <configuration>

         <skiptests> true </skiptests>

       </configuration>

     </plugin>

     <plugin>

       <groupid>org.apache.maven.plugins</groupid>

       <artifactid>maven-compiler-plugin</artifactid>

       <version> 2.3 . 2 </version>

       <configuration>

         <source> 1.8 </source>

         <target> 1.8 </target>

         <encoding>utf- 8 </encoding>

         <compilerarguments>

           <extdirs>${project.basedir}/lib/</extdirs>

         </compilerarguments>

       </configuration>

     </plugin>

     <plugin>

       <groupid>org.apache.maven.plugins</groupid>

       <artifactid>maven-shade-plugin</artifactid>

       <version> 3.1 . 0 </version>

       <executions>

         <execution>

           <phase> package </phase>

           <goals>

             <goal>shade</goal>

           </goals>

           <configuration>

             <minimizejar> true </minimizejar>

             <filters>

               <filter>

                 <artifact>*:*</artifact>

               </filter>

             </filters>

             <transformers>

               <!-- 往manifest文件中写入main- class 是可执行包的必要条件。manifestresourcetransformer可以轻松实现。 -->

               <transformer

                 implementation= "org.apache.maven.plugins.shade.resource.manifestresourcetransformer" >

                 <mainclass>com.ctbri.echorisk.applicationstart</mainclass>

               </transformer>

               <!-- appendingtransformer 用来处理多个jar包中存在重名的配置文件的合并,尤其是spring -->

               <transformer

                 implementation= "org.apache.maven.plugins.shade.resource.appendingtransformer" >

                 <resource>meta-inf/spring.handlers</resource>

               </transformer>

               <transformer

                 implementation= "org.apache.maven.plugins.shade.resource.appendingtransformer" >

                 <resource>meta-inf/spring.schemas</resource>

               </transformer>

             </transformers>

           </configuration>

         </execution>

       </executions>

     </plugin>

   </plugins>

</build>

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

<!-- 第三种打包方式 (maven-assembly-plugin) -->

<build>

   <plugins>

     <plugin>

       <groupid>org.apache.maven.plugins</groupid>

       <artifactid>maven-surefire-plugin</artifactid>

       <version> 2.21 . 0 </version>

       <configuration>

         <skiptests> true </skiptests>

       </configuration>

     </plugin>

     <plugin>

       <artifactid>maven-compiler-plugin</artifactid>

       <version> 2.3 . 2 </version>

       <configuration>

         <source> 1.8 </source>

         <target> 1.8 </target>

         <encoding>utf- 8 </encoding>

         <compilerarguments>

           <extdirs>${project.basedir}/lib/</extdirs>

         </compilerarguments>

       </configuration>

     </plugin>

     <plugin>

       <artifactid>maven-assembly-plugin</artifactid>

       <configuration>

         <descriptorrefs>

           <descriptorref>jar-with-dependencies</descriptorref>

         </descriptorrefs>

         <archive>

           <manifest>

             <mainclass>com.ctbri.echorisk.applicationstart</mainclass>

           </manifest>

         </archive>

       </configuration>

       <executions>

         <execution>

           <id>make-assembly</id>

           <phase> package </phase>

           <goals>

             <goal>single</goal>

           </goals>

         </execution>

       </executions>

     </plugin>

   </plugins>

</build>

总结

以上所述是小编给大家介绍的java中maven项目导出jar包配置的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

原文链接:https://www.cnblogs.com/strugglion/archive/2018/11/26/10020218.html

查看更多关于Java中Maven项目导出jar包配置的示例代码的详细内容...

  阅读:12次