使用Maven创建输出目录结构

时间:2012-03-10 09:41:33

标签: maven maven-2 maven-3

我有一个java项目XXX

  • 的src /主/ JAVA
  • 的src /主/配置
  • 的src /主/脚本

我想要输出结构,如

C:/target/XXX.jar C:/目标/脚本

我尝试使用资源插件,但它将所有内容打包在jar中。

<build>
    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <finalName>${artifactId}-${version}</finalName>
    <sourceDirectory>src/main/java</sourceDirectory>
    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
    <resources>
        <resource>
            <directory>src/main/config</directory>
        </resource>
        <resource>
            <directory>src/main/scripts</directory>
            <targetPath>/scripts</targetPath>
        </resource>
    </resources>
</build>

1 个答案:

答案 0 :(得分:3)

maven-assembly-plugin对于这类事情很有用。您可以创建这样的描述符(在src / main / assemble / scripts.xml中):

<assembly>
  <id>scripts</id>
  <formats>
    <format>dir</format>
  </formats>
  <fileSets>
    <fileSet>
      <outputDirectory>/scripts</outputDirectory>
      <includes>
        <include>*.*</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>

将其连接到您的构建中,如下所示:

<build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assemble/scripts.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>copy-scripts</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
 </build>

这会将程序集的执行绑定到构建的包阶段。

此方法可让您灵活地更改将来打包脚本的方式,或在构建中复制更多资源。