Maven PAR 插件 1.0.0.M1

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

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

随着 dm Server 2.0 里程碑的进展,我们一直在向 PAR 文件添加新功能。最有趣的功能是,现在 PAR 文件可以包含不仅仅是 JAR 文件。随着OSGi RFC 66的引入,dm Server 已弃用 Web 模块,转而使用标准 Web 容器文件,使用.war扩展名。因此,需要更新 PAR 插件以支持这些不同的依赖类型。Thorsten 慷慨地同意将他的代码捐赠给 SpringSource,我很高兴地宣布 Apache 许可的 Maven PAR 插件的 1.0.0.M1 版本发布。

使用方法

插件的使用几乎没有变化,现在可以默认所有所需的信息。

仓库

要获取插件,您需要将 SpringSource 企业捆绑包仓库引用为<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/>配置标签,它在${groupId}.${artifactId}-${version}.${type}${artifactId}.${type}之间选择 PAR 文件中包含的文件的文件名。此值默认为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 Newsletter

关注 Spring Newsletter

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring 和 Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部