7

maven-assembly-plugin の使用

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.1</version>
<configuration>
 <descriptors>
  <descriptor>descriptor.xml</descriptor>
 </descriptors>
 <finalName>xxx-impl-${pom.version}</finalName>
 <outputDirectory>target/assembly</outputDirectory>
 <workDirectory>target/assembly/work</workDirectory>
</configuration>

descriptor.xml ファイルで指定できます

    <fileSets>
    <fileSet>
        <directory>src/install</directory>
        <outputDirectory>/</outputDirectory>
    </fileSet>
</fileSets>

プロファイルに応じて、このフォルダーまたはサブフォルダーから特定のファイルを含めることは可能ですか? それとも別の方法...

このような:

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <resources>
                <resource>
                    <directory>src/install/dev</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>prod</id>
        <build>
            <resources>
                <resource>
                    <directory>src/install/prod</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </resource>
            </resources>
        </build>
    </profile>
</profiles>

ただし、パッケージ化するときにリソースをjarに入れます。しかし、すでに上で述べたように、組み立てるときにそれをzipに入れる必要があります:(ありがとう!

4

2 に答える 2

17

リソースにパターンがある場合 (たとえば*.properties)、アセンブリ記述子ファイルで次のようなことができます。

<fileSets>
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>*.properties</include>
            </includes>
        </fileSet>
</fileSets>

*.propertiesこれにより、targetフォルダーからアセンブリ zip のルート フォルダーにすべてがコピーされます。実行中のプロファイルに基づいて、pom.xml適切なリソースのみがtargetフォルダーに存在します。

于 2011-01-05T09:25:18.640 に答える
2

タグビルド内のすべてのプロファイルにプラグインの実行を配置します。

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <phase>grr</phase>
            <goals>
              <goal>tree</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
          <excludes>
            <exclude>**/*.xml</exclude>
          </excludes>
        </configuration>
      </plugin>

    </plugins>
  </build>
  <profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.1</version>
            <configuration>
              <descriptors>
                <descriptor>descriptor.xml</descriptor>
              </descriptors>
              <finalName>xxx-impl-${pom.version}</finalName>
              <outputDirectory>target/assembly</outputDirectory>
              <workDirectory>target/assembly/work</workDirectory>
            </configuration>
          </plugin>
          <resources>
            <resource>
              <directory>src/install/dev</directory>
              <includes>
                <include>**/*</include>
              </includes>
            </resource>
          </resources>
      </build>
    </profile>
    <profile>
      <id>prod</id>
      <build>
        <resources>
          <resource>
            <directory>src/install/prod</directory>
            <includes>
              <include>**/*</include>
            </includes>
          </resource>
        </resources>
      </build>
    </profile>
  </profiles>
于 2011-01-05T09:29:42.747 に答える