领先一步
VMware 提供培训和认证,助您加速进步。
了解更多在 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 版本发布。
<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>
<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.
<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>
[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'