我在 可執行的 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 可以滿足各種獨特的需求。
---
---
---
沒有留言:
張貼留言