通过' maven-assembly-plugin'打包弹簧启动项目时出现目录错误

时间:2015-07-16 06:15:52

标签: java spring maven spring-boot maven-assembly-plugin

我通过“maven-assembly-plugin'”将Spring启动项目打包,但是我收到了目录错误。

为什么'配置'文件夹位于根目录中,而不在  ' bth_core'目录?

这是pom.xml

<build>
<finalName>bth-core</finalName>
<resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>

        </resource>
    </resources>
    <plugins>
       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <excludes>
                    <exclude> **/assemble/**</exclude>
                    <exclude> **/properties/** </exclude>
                    <exclude> **/log4j.properties </exclude>
                    <exclude> **/script/**</exclude>
                      <exclude> **/spring/**</exclude>
                    <exclude> **/sqlmap/** </exclude>
                     <exclude> **/jobs/** </exclude>
                </excludes>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>  <!-- mvn assembly:assembly-->
                <execution>
                    <id>make-zip</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <descriptors> 
                            <descriptor>src/main/resources/assemble/assembly.xml</descriptor>
                        </descriptors>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

这是assembly.xml

<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>${mavenDir}-assembly</id>
<formats>
    <format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
    <fileSet>
        <directory>${project.basedir}/src/main/resources</directory>
        <includes>
            <include>**/*.xml</include>
            <include>log4j.properties</include>
            <!-- <include>**/properties/${mavenDir}/**</include> -->
        </includes>
        <excludes>
            <exclude>**/assemble/**</exclude>
            <exclude>**/script/**</exclude>
            <exclude>**/properties/*.properties</exclude>
            <exclude>**/key/**</exclude>
        </excludes>
        <outputDirectory>config</outputDirectory>
    </fileSet>
    <!-- <fileSet>
        <directory>${project.basedir}/src/main/resources/properties/${mavenDir}</directory>
        <outputDirectory>config/properties/</outputDirectory>
    </fileSet> -->
    <fileSet>
        <directory>${project.basedir}/src/main/log</directory>
        <outputDirectory>log</outputDirectory>
    </fileSet>

    <fileSet>
        <directory>${project.basedir}/src/main/resources/script</directory>
        <includes>
            <include>startup.sh</include>
        </includes>
        <fileMode>0755</fileMode>
        <outputDirectory>/</outputDirectory>
        <lineEnding>unix</lineEnding>
    </fileSet>
</fileSets>
<files>
    <file>
        <source>${project.basedir}/src/main/resources/script/conf/setenv-${mavenDir}.conf</source>
        <outputDirectory>config</outputDirectory>
        <destName>setenv.conf</destName>
        <lineEnding>unix</lineEnding>
    </file>
</files>
<dependencySets>
    <dependencySet>
        <outputDirectory>lib</outputDirectory>
        <excludes>
            <exclude>org.apache.maven:*</exclude>
            <exclude>org.codehaus.plexus:*</exclude>
            <exclude>org.apache.maven.wagon:*</exclude>
            <exclude>org.apache.maven.surefire:*</exclude>
            <exclude>org.apache.maven.plugins:*</exclude>
            <exclude>junit:*</exclude>
            <!-- <exclude>log4j:*</exclude> -->
        </excludes>
    </dependencySet>
</dependencySets>

1 个答案:

答案 0 :(得分:1)

如果你绝对必须,这里是我如何使用spring boot maven插件成功使用maven程序集插件:

<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <appendAssemblyId>false</appendAssemblyId>
                <descriptors>
                    <descriptor>assembly_descriptor.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>  <!-- this is used for inheritance merges -->
                    <phase>package</phase>  <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

HTH:)