我在 可執行的 Jar(Executable Jar)有意識到這一點,但當時以為 mvn package 就可以達成這個目的,事實上不然,當時只是剛好碰對了。
要加上以下這個 maven-shade-plugin 才可以用 mvn package 包成一包。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
上面的定義大概是說,在執行 package 這個 phase 時(這是個 Lifecycle 階段),要去執行 maven-shade-plugin 這個 plugin 的 shade 這個 goal,goal 可以想像成是 Ant 的 Target。這就是 Maven 不變的 Lifecycle 下可變的 Plugin 範例,不變的 Lifecycle 讓所有人都知道怎麼 build 一個 Maven project,可變的 Plugin 可以滿足各種獨特的需求。
---
---
---
沒有留言:
張貼留言