Maven PAR 插件 1.0.0.M1

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

在 SpringSource dm Server(当时的应用程序平台)推出后不久,Thorsten Maus 创建了一个 Maven 插件用于创建 PAR 文件。这是一项很棒的社区贡献,我们甚至在 dm Server 1.0.x 的 入门指南 中使用了它。

随着 dm Server 2.0 里程碑的推进,我们一直在为 PAR 文件添加新功能。最有趣的功能是现在 PAR 文件不仅可以包含 JAR 文件。随着 OSGi RFC 66 的引入,dm Server 弃用了 Web Modules,转而使用带有.war扩展名的标准 Web 容器文件。因此,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 清单头都使用 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/>配置标签,用于选择 PAR 文件中包含的文件名是${groupId}.${artifactId}-${version}.${type}还是${artifactId}.${type}。此值默认为false.

PAR

接下来,添加您的依赖项列表。该插件打包 POM 中列出的所有直接依赖项。它不关心范围或传递性依赖项。
<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 社区所有即将举行的活动。

查看所有