1. 程式人生 > >maven對java專案打包,如何通過maven打包依賴jar,打包主類,在pom.xml中設定

maven對java專案打包,如何通過maven打包依賴jar,打包主類,在pom.xml中設定

設定位置

<build>
        <plugins>
			在此處新增
        </plugins>
    </build>
  1. maven編譯時即打包main class主類,有打包依賴jar
<!-- maven jar in main class and dependencies start -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>ServiceLogProducer</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--  maven jar in main class and dependencies end -->
  1. maven編譯時只打包依賴jar,不設定主類
<!--only in dependencies and no main class start -->
            <!--<plugin>-->
                <!--<artifactId>maven-assembly-plugin</artifactId>-->
                <!--<version>3.0.0</version>-->
                <!--<configuration>-->
                    <!--<descriptorRefs>-->
                        <!--<descriptorRef>jar-with-dependencies</descriptorRef>-->
                    <!--</descriptorRefs>-->
                <!--</configuration>-->
                <!--<executions>-->
                    <!--<execution>-->
                        <!--<id>make-assembly</id> &lt;!&ndash; this is used for inheritance merges &ndash;&gt;-->
                        <!--<phase>package</phase> &lt;!&ndash; bind to the packaging phase &ndash;&gt;-->
                        <!--<goals>-->
                            <!--<goal>single</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                <!--</executions>-->
            <!--</plugin>-->
            <!--only in dependencies and no main class end -->