Maven PAR 插件 1.0.0.M1

工程 | Ben Hale | 2009年6月24日 | ...

在 SpringSource dm Server (當時稱為 Application Platform) 推出後不久,Thorsten Maus 建立了一個 Maven 插件來建立 PAR 檔案。這是一個很棒的社群貢獻,我們甚至在 dm Server 1.0.x 的 入門指南 中使用了它。

隨著 dm Server 2.0 里程碑的進展,我們一直在為 PAR 檔案添加新功能。最有趣的功能是,現在 PAR 檔案可以包含的不僅僅是 JAR 檔案。隨著 OSGi RFC 66 的推出,dm Server 已經 棄用 Web Modules,轉而支持使用標準 Web Container 檔案.war擴展名。 因此,PAR 插件需要更新以支持這些不同類型的依賴項。 Thorsten 非常慷慨地同意將他的程式碼捐贈給 SpringSource,我很榮幸地宣布 Apache 授權的 Maven PAR 插件 1.0.0.M1 發布。

用法

插件的使用方式僅略有改變,現在可以預設所有需要的資訊。

儲存庫

要取得該插件,您需要將 SpringSource Enterprise Bundle Repository 參考為一個<pluginRepository/>
<pluginRepositories>
    <pluginRepository>
          <id>com.springsource.repository.bundles.milestone</id>
          <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Milestones</name>
          <url>http://repository.springsource.com/maven/bundles/milestone </url>
     </pluginRepository>
</pluginRepositories>

建置插件

接下來,您需要將封裝類型設定為par並將插件添加到您的建置插件列表中。
<build>
     <plugins>
          <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-par-plugin</artifactId>
               <version>1.0.0.M1</version>
          </plugin>
     </plugins>
</build>

預設情況下,所有 PAR manifest 標頭都使用 POM 中的預設值填充,但可以使用配置覆蓋。

標頭 POM 元素
Application-SymbolicName ${project.artifactId}
Application-Name ${project.name}
Application-Description ${project.description}
Application-Version ${project.version}
<build>
     <plugins>
          <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-par-plugin</artifactId>
               <version>1.0.0.M1</version>
               <configuration>
                   <applicationSymbolicName>override.symbolic.name</applicationSymbolicName>
                   <applicationName>Override Name</applicationName>
                   <applicationDescription>Override Description</applicationDescription>
                   <applicationVersion>1000.0.0.override</applicationVersion>
               </configuration>
          </plugin>
     </plugins>
</build>

還有一個<fullyQualifiedNames/>配置標籤,用於選擇${groupId}.${artifactId}-${version}.${type}${artifactId}.${type}用於 PAR 檔案中包含的檔案的檔案名稱。此值預設為false.

PAR

接下來,添加您的依賴項列表。該插件打包 POM 中列出的所有直接依賴項。它不關心 scopes 或傳遞依賴項。
<dependencies>
    <dependency>
        <groupId>com.springsource.dmserver</groupId>
        <artifactId>greenpages.app-solution</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>com.springsource.dmserver</groupId>
        <artifactId>greenpages.jpa-solution</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>com.springsource.dmserver</groupId>
        <artifactId>greenpages.db-solution</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>com.springsource.dmserver</groupId>
        <artifactId>greenpages.web-solution</artifactId>
        <version>${project.version}</version>
        <type>war</type>
    </dependency>
</dependencies>

建置

執行mvn package.
[INFO] [par:par]
[INFO] Assembling Artifacts for PAR 'solution/greenpages/target/greenpages-solution-1.0.0.SNAPSHOT.par'
[INFO]   Added 'greenpages.app-solution.jar'
[INFO]   Added 'greenpages.jpa-solution.jar'
[INFO]   Added 'greenpages.db-solution.jar'
[INFO]   Added 'greenpages.web-solution.war'

未來

請複製原始程式碼,並在 dm Server JIRA 的評論和建議中提供我回饋。

取得 Spring 電子報

透過 Spring 電子報保持聯繫

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉辦的活動

查看 Spring 社群中所有即將舉辦的活動。

查看全部