2

フェーズからいくつかのファイルgeneratedを配置した後、ディレクトリを削除する次の pom.xml があります。*.javagenerate-sources

    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.5</version>
        <type>maven-plugin</type>
    </dependency>
</dependencies>
<build>
    <plugins>
        <!-- This plugin generates java files in generated directory -->
        <plugin>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-maven-plugin</artifactId>
            <version>${avro.version}</version>
            <executions>
                ...
            </executions>
        </plugin> 
        <!-- To clean the generated directory in service package -->           
        <plugin>
            <groupId>maven</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>/src/main/java/com/acme/Network/service/generated</directory>
                        <includes>
                            <include>**/*.java</include>
                        </includes>
                        <excludes>
                            <exclude>**/*.log</exclude>
                        </excludes>  
                        <followSymlinks>false</followSymlinks>
                    </fileset>
                </filesets>
            </configuration>
        </plugin>
    </plugins>
</build>

生成されたパッケージ全体をmaven cleanfrom m2e で削除したい。ただし、ターゲットディレクトリのみを削除するだけで、生成されたディレクトリはそのまま残ります。

私は何を間違っていますか?

4

1 に答える 1

10

まず、依存関係から maven-clean-plugin を削除します。依存関係ではなくプラグインです。

2番目:試してみる

<plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>${basedir}/src/main/java/com/acme/Network/service/generated</directory>
                        </fileset>
                    </filesets>
                </configuration>

            </plugin>

パスは /src で始まります - これはルート / からのグローバル パスです。あなたにとって、ルートは project ${basedir} です

3 番目: 生成されたソースは、慣例により次の場所に追加する必要があります。

${basedir}/target/generated-sources 次に、「クリーン」を実行すると、それも削除されます。そして、 2番目のステップをスキップできます。

ヘルパー プラグインを使用して、他のソース パッケージをプロジェクトに追加します (intellij と eclipse はそれを確認する必要があります)。

     <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>test</id>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>add-source</goal>
                            </goals>
                            <configuration>
                                <sources>
                                    <source>${basedir}/target/generated-sources</source>
                                </sources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

pom でOverride avro-maven-pluginを更新します。

<plugin>
  <groupId>org.apache.avro</groupId>
  <artifactId>avro-maven-plugin</artifactId>
  <version>${avro.version}</version>
  <executions>
    <execution>
      <phase>generate-sources</phase>
      <goals>
        <goal>schema</goal>
      </goals>
      <configuration>
        <sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
        <outputDirectory>${project.basedir}/target/generated-sources/</outputDirectory>
      </configuration>
    </execution>
  </executions>
</plugin>
于 2013-10-30T08:48:47.100 に答える