通过maven构建构建RPM或Deb或Both文件

时间:2015-01-21 07:14:20

标签: plugins debian rpm setup-deployment

根据您的操作系统创建部署文件。文件可能是RPM,Deb或其他。 Deb文件由jdeb插件创建。

1 个答案:

答案 0 :(得分:-1)

我们可以使用pom.xml中的配置文件从deb或rpm创建一个文件。配置文件结构如下: -

<profiles>
    <profile>
        <id>rpm</id>
        <activation>
            <os>
                <family>linux</family>
            </os>
        </activation>
        <build>
            <finalName>Finalname</finalName>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.1.1</version>
                    </plugin>
                    <plugin>
                        <groupId>com.springsource.bundlor</groupId>
                        <artifactId>com.springsource.bundlor.maven</artifactId>
                        <version>1.0.0.M1B</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <inherited>false</inherited>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>project</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.3.1</version>
                    <configuration>
                        <webResources>
                            <resource>
                                <directory>src/main/resources</directory>
                                <filtering>false</filtering>
                            </resource>
                            <resource>
                                <directory>src/main/java</directory>
                                <filtering>true</filtering>
                            </resource>
                            <resource>
                                <!-- this is relative to the pom.xml directory -->
                                <directory>src/test/java</directory>
                                <!-- <excludes> <exclude>**/*Test.java</exclude> <exclude>**/*AllTests.java</exclude> 
                                    <exclude>**/*.java</exclude> </excludes> -->
                            </resource>
                        </webResources>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <skip>false</skip>
                        <includes>
                            <include>**/*.java</include>
                        </includes>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <printSummary>true</printSummary>
                        <useFile>true</useFile>
                        <forkMode>pertest</forkMode>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>
                                    org.springframework.batch.core.launch.support.CommandLineJobRunner
                                </mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>rpm-maven-plugin</artifactId>
                    <version>2.0.1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <id>package-development</id>
                            <goals>
                                <goal>rpm</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <copyright>No body</copyright>
                        <group>Development</group>
                        <description>MavenRecipe:RPMPackage.</description>
                        <mappings>
                            <mapping>
                                <directory>/opt/tomcat/webapps/${project.build.finalName}</directory>
                                <sources>
                                    <source>
                                        <location>target/${project.build.finalName}</location>
                                    </source>
                                </sources>
                            </mapping>
                        </mappings>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>deb</id>
        <activation>
            <os>
                <family>linux</family>
            </os>
        </activation>
        <build>
            <finalName>FinalName</finalName>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.1.1</version>
                    </plugin>
                    <plugin>
                        <groupId>com.springsource.bundlor</groupId>
                        <artifactId>com.springsource.bundlor.maven</artifactId>
                        <version>1.0.0.M1B</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <inherited>false</inherited>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>project</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
            <plugins>
                <plugin>

                    <groupId>org.vafer</groupId>
                    <artifactId>jdeb</artifactId>
                    <version>1.0</version>
                    <executions>
                        <execution>
                            <id>deb</id>
                            <phase>install</phase>
                            <goals>
                                <goal>jdeb</goal>
                            </goals>
                            <configuration>
                                <verbose>true</verbose>
                                <deb>target/${project.build.finalName}${project.version}.deb</deb>
                                <controlDir>/home/dbobra/Workspace/project-workspace/projectname/src/deb/control</controlDir>
                                <dataSet>
                                    <data>
                                        <src>${project.build.directory}/${project.build.finalName}</src>
                                        <type>directory</type>
                                        <mapper>
                                            <type>perm</type>
                                            <prefix>/home/dbobra/installed/tomcat/webapps/${project.build.finalName}</prefix>
                                        </mapper>
                                    </data>
                                </dataSet>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

            </plugins>

        </build>
    </profile>

如果您需要创建这两个文件,则使用此命令进行构建  mvn clean install -e 如果您只需要创建deb文件,那么您可以使用命令 mvn clean install -P '!rpm' -e 如果只需要创建rpm文件,则使用命令 mvn clean install -P '!deb' -e

希望这些东西可以解决你的问题。